使用RestSharp将POST参数添加到POST请求中

我想对这样的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?

如果你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); 

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

当前版本的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);