如何在RestSharp中添加文本以请求正文

我正在尝试使用RestSharp来使用Web服务。 到目前为止,一切都很顺利(欢呼约翰希恩和所有的贡献者!),但我碰到了一个障碍。 假设我想以已经序列化的forms(即作为一个string)将XML插入到RestRequest的主体中。 是否有捷径可寻? 看起来.AddBody()函数在场景后面进行序列化,所以我的string正在变成<String />

任何帮助是极大的赞赏!

编辑:我的当前代码的示例被要求。 见下文 –

 private T ExecuteRequest<T>(string resource, RestSharp.Method httpMethod, IEnumerable<Parameter> parameters = null, string body = null) where T : new() { RestClient client = new RestClient(this.BaseURL); RestRequest req = new RestRequest(resource, httpMethod); // Add all parameters (and body, if applicable) to the request req.AddParameter("api_key", this.APIKey); if (parameters != null) { foreach (Parameter p in parameters) req.AddParameter(p); } if (!string.IsNullOrEmpty(body)) req.AddBody(body); // <-- ISSUE HERE RestResponse<T> resp = client.Execute<T>(req); return resp.Data; } 

这里是如何添加纯XML文件的string到请求正文:

req.AddParameter("text/xml", body, ParameterType.RequestBody) ;

要添加到@ dmitreyg的答案和per @ jrahhali的评论给他的答案,在当前版本中,截至发布时为v105.2.3 ,语法如下:

 request.Parameters.Add(new Parameter() { ContentType = "application/json", Name = "JSONPAYLOAD", // not required Type = ParameterType.RequestBody, Value = jsonBody }); request.Parameters.Add(new Parameter() { ContentType = "text/xml", Name = "XMLPAYLOAD", // not required Type = ParameterType.RequestBody, Value = xmlBody });