为什么asp.net-web-api结合Restsharp的POST方法总是无法正常响应?

2026-04-30 12:218阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计392个文字,预计阅读时间需要2分钟。

为什么asp.net-web-api结合Restsharp的POST方法总是无法正常响应?

我尝试了RestSharp.org文档中提到的所有可能场景,但都没有成功。这里有一个ASP.Net Web API的POST资源示例代码:

csharp[Route(api/saveperson/{name}/{fathername})] public void Post([FromBody] CustomObject customObject, string name, string fathername){ // 处理POST请求}

我根据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); }

使用上面的代码在Body中发布的参数始终为null.

当我进行以下调用时,Body中发布的参数具有值,但其他值为空

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); }

任何帮助都将受到欢迎!

我找到了解决方案.回答我自己的问题,那些面临类似问题的人可以找到解决方案.

只需要执行以下请求:

为什么asp.net-web-api结合Restsharp的POST方法总是无法正常响应?

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); }

上面的代码解决了我的问题.

本文共计392个文字,预计阅读时间需要2分钟。

为什么asp.net-web-api结合Restsharp的POST方法总是无法正常响应?

我尝试了RestSharp.org文档中提到的所有可能场景,但都没有成功。这里有一个ASP.Net Web API的POST资源示例代码:

csharp[Route(api/saveperson/{name}/{fathername})] public void Post([FromBody] CustomObject customObject, string name, string fathername){ // 处理POST请求}

我根据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); }

使用上面的代码在Body中发布的参数始终为null.

当我进行以下调用时,Body中发布的参数具有值,但其他值为空

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); }

任何帮助都将受到欢迎!

我找到了解决方案.回答我自己的问题,那些面临类似问题的人可以找到解决方案.

只需要执行以下请求:

为什么asp.net-web-api结合Restsharp的POST方法总是无法正常响应?

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); }

上面的代码解决了我的问题.