Вопрос по c#, web-services, .net – Добавьте параметр GET к запросу POST с помощью RestSharp

16

Я хочу сделать запрос POST к URL-адресу, как это:

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?

Ваш Ответ

2   ответа
34

Текущая версия 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); 
Error: User Rate Limit Exceededrequest.AddQueryParameter(name,value)Error: User Rate Limit Exceededrequest.AddParameter(name, value, ParameterType.QueryString)
Error: User Rate Limit Exceeded
22

Это должно работать, если вы 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);

Это далеко от идеала - но самый простой способ, который я нашел ... все еще надеюсь найти лучший путь.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы