加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-web-api – Restsharp- Method.POST不能正常工作

发布时间:2020-12-16 09:12:10 所属栏目:asp.Net 来源:网络整理
导读:我根据RestSharp.org文档尝试了所有可能的场景,但没有运气! 我这里有ASP.Net Web API是POST资源 [Route("/api/saveperson/{name}/{fathername}")] public void Post([FromBody]CustomObject customObject,string name,string fatherName){ //customObject i
我根据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);

}

任何帮助都将受到欢迎!

解决方法

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

只需要执行以下请求:

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",ParameterType.RequestBody);
   request.AddUrlSegment("name","Gaurav");
   request.AddUrlSegment("fathername","Lt. Sh. Ramkrishan");

   var response= client.Execute(request);

}

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读