RestSharp PUT请求参数

时间:2016-11-25 18:58:33

标签: c# json rest 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);
        }

我在POST上测试了JSON广告requestBody并且工作正常。我认为我的问题是我试图通过ReorderedTasks[i].ID的第一个参数,我不确定我是否正确处理了这个问题。

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

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

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

这取决于webApi期望的内容..

您可以使用Fiddler检查通过电汇发送的内容以及您获得的响应(http://www.telerik.com/fiddler

此外 - 以下是其他用户如何使用RestSharp的示例 How do I use PUT in RestSharp?

答案 2 :(得分:0)

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

如果您的端点网址包含您想要传递的?param=value&param2=value参数,那么RestSharp的AddParameter(string, string)将无法使用PUT方法(但它可以正常使用{{1}或者如果端点没有URL参数,那么它就是欺骗性的)

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