Добавьте параметр GET в запрос POST с помощью RestSharp
Я хочу сделать запрос 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?
Ответы
Ответ 1
Это должно работать, если вы 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);
Это далеко не идеальный - но самый простой способ, который я нашел... все еще надеясь найти лучший способ.
Ответ 2
Текущая версия 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);