我在c#中使用了以下代码,它使用了RestClient。问题是标题不应区分大小写,但看起来就像它们一样。
var client = new RestClient(sMA_URL);
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
//Without the line below the RestRequest adds some default header which is not acceptable by our server.
request.AddHeader("**Accept**", "*/*");
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "Bearer "+sBearerToken);
// Make sure you deserialize this response, for further use. The best way to do this is to create a class and then fill that with the values obtained by the response but if a response is not used many times,
// you can do it the way it has been done in Bearer Token Generation
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Console.ReadKey();
当我接受(小写)时,它会抱怨内容类型但是Accept(大写)工作正常。没有关于内容类型的错误。我无法确定问题是否与其尝试调用的服务或RestClient本身有关。
这是我得到的状态代码(没有例外) ' NotAcceptable Content-Type'
答案 0 :(得分:0)
答案中包含答案,其解释清楚。
" NotAcceptable Content-Type"
上述消息表示您尝试向您发送请求的API,服务或端点,根据content-type
标题{' application/json
'拒绝您的请求。
由于您要发送 GET 请求,我不明白为什么您需要指定content-type
。
尝试删除content-type
标题,您的请求可能会有效。
添加content-type
标头将用于 POST 或 PUT 请求,您将在请求中发送正文/有效负载(例如:json,表单数据,xml,multipart等...),甚至对于此类请求,除非您发送请求的服务器要求您指定content-type
,否则它仍然不是必需的。