2017-05-25 44 views
0

我試圖發送一個REST POST請求在Xamarin JSON數據但無論我嘗試我總是得到這個錯誤的響應:Restsharp頭始終設置爲「應用程序/ x-www-form-urlencoded」POST請求

{ "message" : "Unexpected Content-Type 'application/x-www-form-urlencoded', expecting 'application/json'."} 

我測試了我的請求,與本網站:https://resttesttest.com/和響應都確定了標題設置爲"Content-Type", "application/json"

但在我的代碼中,它從來沒有工作。 這個方法我試過:

var request = new RestRequest("api/1/databases/{db}/collections/{coll}", Method.POST); 
request.AddParameter("apiKey", Common.API_KEY); 
request.AddUrlSegment("db", Common.DB_NAME); 
request.AddUrlSegment("coll", collection); 
request.AddHeader("Accept", "application/json"); 
request.AddParameter("application/json", JsonConvert.SerializeObject(objet), ParameterType.RequestBody); 

這一個:

var request = new RestRequest("api/1/databases/{db}/collections/{coll}", Method.POST); 
request.AddParameter("apiKey", Common.API_KEY); 
request.AddUrlSegment("db", Common.DB_NAME); 
request.AddUrlSegment("coll", collection); 
request.AddHeader("content-type", "application/json; charset=utf-8"); 
if (objet != null) 
    request.AddJsonBody(objet); 

等衆多但沒有母校我做什麼我總是得到相同的答覆。

+1

'AddParameter'將在'POST'請求​​(使用'添加請求* *身體裏面的參數application/x-www-form-urlencoded'作爲內容類型)。你需要你的'apiKey'? –

+0

我需要傳遞我的'apiKey'作爲查詢參數來訪問我的數據拋出mLab REST API。下面是一個例子:'https://api.mlab.com/api/1/databases?apiKey = 2E81PUmPFI84t7UIc_5YdldAp1ruUPKye' –

+0

它是'Content-Type'不是'content-type' – spender

回答

1

如果請求方法是POST,AddParameter將在請求正文中添加您的參數(如果僅使用兩個參數進行調用)。

如果你需要把你的參數的查詢字符串裏面,你需要明確指定:

request.AddParameter("apiKey", Common.API_KEY, ParameterType.QueryString); 
// other segments omitted 
request.AddJsonBody(objet); 
+0

這是工作非常感謝你費德里科我一直在這個問題卡住了好幾天!謝謝 –

相關問題