2016-01-21 5 views
0

Я пытаюсь отправить запрос POST и отформатировать строку запроса в определенном формате. Заказ не имеет значения, кроме первого параметра, но я не был успешным.Добавить URL-адрес строки запроса для запроса

Что мне нужно:

локальный/someapp/апи/DoSomething/5335?save=false&userid=66462

То, что некоторые из моих попыток выплюнуть:

http://localhost/someapp/api/dosomething/?Id=29455&save=false&userId=797979 http://localhost/someapp/api/dosomething/?save=false&userId=797979

Как я отформатировал запрос:

request.AddQueryParameter("Id", "29455"); 
    request.AddQueryParameter("save", "false"); 
    request.AddQueryParameter("user", "4563533245"); 

Если я пытаюсь AddParameter для Id он не получает добавленным в строке запроса (я имею в виду, потому что это POST, а не GET), так что вон» т работы. API не ожидает форму, он ожидает:

(string id, List<Dictionary<string,string>>)

Я мог бы использовать StringBuilder, но это кажется неправильным. Я не уверен, что UrlSegment - лучший способ пойти, так как я в основном взломал строку запроса. Есть ли способ отформатировать мой запрос в формате, который мне нужен, используя API RestSharp?

+0

Возможно, вам понравится [Flurl] (http://tmenier.github.io/Flurl/) подход к созданию (и вызову) URL-адресов. Это довольно немного подробней, чем RestSharp. [отказ от ответственности: я автор] –

ответ

0

То, что я в конечном итоге использовала это UrlSegment, а затем держали .AddQueryParameter методы, поэтому окончательный блок кода выглядит следующим образом:

var url = new RestClient(localhost/someapp/api/dosomething/{id}); 
var request  = new RestRequest(Method.POST); 

request.AddParameter("Id", "5335", ParameterType.UrlSegment); 
request.AddQueryParameter("save", "true"); 
request.AddQueryParameter("UserId", "5355234"); 

который произвел URI мне нужно.

Смежные вопросы