我已经按照 RestSharp.org 文档尝试了所有可能的情况,但没有运气!
我有 ASP.Net Web API 这里是 POST 资源
[Route("/api/saveperson/{name}/{fathername}")]
public void Post([FromBody]CustomObject customObject, string name, string fatherName)
{
//customObject is null
}
RestSharp 请求:
public void SomeAPIRequest()
{
var baseUrl = "someurl from config";
var client = new RestClient(baseUrl);
var request = new RestRequest("/api/saverperson/{name}/{fathername}",Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddBody(myObject); //This object is perfectly serialized in json
request.AddParameter("name","Gaurav",ParameterType.UrlSegment);
request.AddParameter("fathername","Lt. Sh. Ramkrishan",ParameterType.UrlSegment);
var response= client.Execute(request);
}
使用上面的代码,在正文中发布的参数始终为空。
当我进行以下调用时,在正文中发布的参数具有值(value),但其他参数为空
public void SomeAPIRequest()
{
var baseUrl = "someurl from config";
var client = new RestClient(baseUrl);
var request = new RestRequest("/api/saverperson/{name}/{fathername}",Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddBody(myObject); //This object is perfectly serialized in json
request.AddUrlSegment("name","Gaurav");
request.AddUrlSegment("fathername","Lt. Sh. Ramkrishan");
var response= client.Execute(request);
}
任何帮助都将受到欢迎!
最佳答案
我找到了解决方案。回答我自己的问题,以便遇到类似问题的人可以找到解决方案。
只需按以下方式执行请求:
request.AddParameter("Application/Json", myObject, ParameterType.RequestBody);
以下是完整的片段:
public void SomeAPIRequest()
{
var baseUrl = "someurl from config";
var client = new RestClient(baseUrl);
var request = new RestRequest("/api/saverperson/{name}/{fathername}",Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddParameter("Application/Json", myObject, ParameterType.RequestBody);
request.AddUrlSegment("name","Gaurav");
request.AddUrlSegment("fathername","Lt. Sh. Ramkrishan");
var response= client.Execute(request);
}
上面的代码,解决了我的问题。
关于asp.net-web-api - Restsharp-Method.POST 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27650036/