Restsharp header 始终根据 POST 请求设置为 "application/x-www-form-urlencoded"

Restsharp header always set to "application/x-www-form-urlencoded" on POST request

我正在尝试在 Xamarin 中使用 REST POST 请求发送 json 数据,但无论我尝试什么,我总是收到此错误响应:

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

我在这个网站上测试了我的请求:https://resttesttest.com/,响应正常,header 设置为 "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);

还有很多其他的,但无论我做什么,我总是得到相同的回应。

如果请求方法是 POSTAddParameter 将在请求正文中添加您的参数(如果仅使用两个参数调用)。

如果您需要将参数放在查询字符串中,您需要明确指定:

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