[英]How to post a Request to Web API as Xml using RestSharp?
如何以Xml形式发布对Web API的请求?
我正在使用以下测试:
[TestMethod]
public void Should_post_successfully_with_valid_userDetailsList_usingRestSharp()
{
// arrange
string url = string.Format("{0}/User/BulkLoad", this._baseUrlForLuis);
var client = new RestClient(url);
var request = new RestRequest(Method.POST)
{
RequestFormat = DataFormat.Xml
};
request.AddBody("<user></user>");
request.AddHeader("Accept", "application/xml");
// act
IRestResponse response = client.Execute<HttpResponseMessage>(request);
Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
}
我的动作如下所示; 它接受一个字符串:
[HttpPost]
public HttpResponseMessage BulkLoad([FromBody] string userDetailsListXml)
{
}
但是userDetailsListXml始终为null,因此不会传递该值。
如何解决?
我用Ajax Post尝试过,下面的代码通过并正常工作:
$.post("http://www.domain.com/User/BulkLoad", {"" : "<user></user>"});
但是如何使其与RestSharp一起使用?
var personString = "<Person><Name>Person Name</Name></Person>"; // Your XML string
var restClient = new RestClient("http://localhost:56453/api/people");
var restRequest = new RestRequest("Post", Method.POST);
restRequest.RequestFormat = DataFormat.Xml;
restRequest.AddParameter("application/xml", personString, ParameterType.RequestBody);
var response = restClient.Execute(restRequest);
不要忘记在WebApiConfig.cs中添加以下代码
config.Formatters.XmlFormatter.UseXmlSerializer = true;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.