22

我想向这样的 URL 发出 POST 请求:

http://localhost/resource?auth_token=1234

我想在正文中发送 JSON。我的代码看起来像这样:

var client = new RestClient("http://localhost");
var request = new RestRequest("resource", Method.POST);
request.AddParameter("auth_token", "1234");    
request.AddBody(json);
var response = client.Execute(request);

如何将auth_token参数设置为 GET 参数并将请求设为 POST?

4

2 回答 2

48

当前版本的 RestSharp 有一个使用模板的简短方法:

var request = new RestRequest("resource?auth_token={token}", Method.POST);
request.AddUrlSegment("token", "1234");

或者,您可以添加不带模板的参数:

var request = new RestRequest("resource", Method.POST);
request.AddQueryParameter("auth_token", "1234); 

或者

var request = new RestRequest("resource", Method.POST);
request.AddParameter("auth_token", "1234", ParameterType.QueryString); 
于 2014-03-23T10:24:39.090 回答
29

如果您 1) 将令牌添加到资源 url 并且 2) 像这样指定 ParameterType.UrlSegment,这应该可以工作:

var client = new RestClient("http://localhost");
var request = new RestRequest("resource?auth_token={authToken}", Method.POST);
request.AddParameter("auth_token", "1234", ParameterType.UrlSegment);    
request.AddBody(json);
var response = client.Execute(request);

这远非理想 - 但我发现的最简单的方法......仍然希望找到更好的方法。

于 2012-06-08T00:48:52.587 回答