2016-01-21 130 views
0

我試圖發送POST請求並以特定格式格式化查詢字符串。除了第一個參數外,順序並不重要,但我沒有成功。將URL查詢字符串附加到請求

我需要什麼:

本地主機/ someapp/API/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"); 

如果我嘗試AddParameterId它不會附加在查詢字符串(我想是因爲它是一個POST而不是GET),使韓元」工作。該API並不期待一個形式,它的期待:

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

我可以用一個StringBuilder,但感覺不對。我不確定UrlSegment是否是最好的方法,因爲我基本上會竊聽查詢字符串。有沒有辦法以我需要使用RestSharp API的格式來格式化我的請求?

+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。

相關問題