2017-05-25 43 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

这是工作非常感谢你费德里科我一直在这个问题卡住了好几天!谢谢 –

相关问题