RestSharp PUT请求参数

问题描述:

我遇到问题了解如何使用RestSharp创建放置请求。RestSharp PUT请求参数

我需要在同一个请求中传递一个整数,然后是JSON体。

到目前为止,我有这样的:

for (var i = 0; i < ReorderedTasks.Count; i++) { 
      var reorderedTasksJson = new JavaScriptSerializer().Serialize(ReorderedTasks[i]); 
      var request = new RestRequest("api/task/5/{ID}/", Method.PUT); 
      request.AddParameter("ID", ReorderedTasks[i].ID.ToString(), ParameterType.UrlSegment); 
      request.AddParameter("application/json; charset=utf-8", reorderedTasksJson, ParameterType.RequestBody); 
      client.Execute(request); 
     } 

我测试过了JSON广告requestBody在POST和它工作正常。我想我的问题是我想通过的第一个参数ReorderedTasks[i].ID,我不确定是否正确处理了这个传递。

我已经在我的课程开始时初始化了客户端。

问题是有数据库没有更新,我需要隔离问题。上述处理我需要通过的两个参数的正确方法是?

+0

问题是? – Marty

+0

查看更新的问题。 – xeon48

我建议将ReorderedTasks [i] .ID.ToString()直接放到url路径中。

var request = new RestRequest($"api/task/5/{ReorderedTasks[i].ID.ToString()}/", Method.PUT); 

这将有助于减少http请求格式可能出现的问题。

+0

太好了。我没有意识到我可以做到这一点。将尝试并回来。 – xeon48

+0

谢谢,这工作。 – xeon48

那么它取决于什么是的WebAPI期待..

你可以使用Fiddler检查什么正在通过电线发送什么响应你得到(http://www.telerik.com/fiddler

而且 - 这里有一些样品的其他用户如何使用RestSharp How do I use PUT in RestSharp?

+0

API需要一个long和json体。谢谢,我会研究你的建议。 – xeon48

我会在这里添加它,所以有人会从中受益。

如果您的端点URL有像?param=value&param2=value要与请求一起传递参数RestSharp的AddParameter(string, string)不会PUT方法的工作(但如果端点没有URL参数,它工作得很好用GET或者,所以它是欺骗)

使用AddParameter(string, string, ParameterType.QueryString)PUT方法正常工作。