如何以 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 始终为空,因此不会传递该值。
如何解决?
我尝试使用 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;
关于c# - 如何使用 RestSharp 将请求作为 Xml 发布到 Web API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16107341/