asp.net-web-api - Restsharp-Method.POST 不工作

标签 asp.net-web-api restsharp

我已经按照 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/

相关文章:

c# - 如何处理 WebAPI 上的路由冲突 - 字符串 ID 与操作 + id

c# - Web Api 发现多个操作

c# - 如何避免在 RestSharp 中转义字符?

c# - RestSharp - 反序列化具有无效键名的 json 响应(包含句点)

c# - 在重定向期间在 RestSharp 中保留授权 header

asp.net-mvc - Web API 2 中具有 MVC 5 AttributeRouting 的 QueryString

asp.net - .NET 中的 Web 开发 - 使用哪些技术来构建和使用您自己的 API?

c# - 格式化 ESRI 地理编码器的 RestSharp 请求

c# - 一旦我通过 RestSharp 发布它,我的 json 键就会转换为小写

iis-7 - 对于 Windows 2008 Server IIS 7 和 7.5 中的 asp.net webapi,PUT 和 DELETE 返回 404