尝试使用RestSharp向第三方应用程序发送请求时,出现406错误。我是REST的新手,所以我不得不承认,我甚至都不知道你可以添加标题。我试图添加这些,但我仍然得到相同的问题:其余Sharp - 406错误 - 接受标头不匹配
var client = new RestClient(myURL);
RestRequest request = new RestRequest("restAction", Method.POST);
request.AddHeader("Accept", "text/plain");
request.AddHeader("Content-Type", "text/plain");
request.AddParameter("parameter1", param1);
request.AddParameter("parameter2", param2);
var response = client.Execute(request);
从我读过的,这可能是处理名为“接受”的标题。是对的吗?
任何想法可能会发生什么?
如果将accept标头设置为“\ */\ *”,还是会得到406状态码吗?这应该告诉服务器可以用任何喜欢的格式进行响应,所以如果你仍然使用406,那么服务器似乎有一些内容协商问题。 (似乎默认情况下,RestSharp的Accept头中包含“\ *”,所以我很惊讶你最初得到了406,但它可能是“\ *”无法识别,而是“\ */\ * “is) – 2013-04-05 02:16:27
一般来说,在HTTP中,当客户端向服务器发出请求时,会告诉服务器准备理解(接受)哪种格式。可接受格式的列表是Accept头的用途。如果服务器无法使用Accept头中的任何媒体类型进行响应,则它将返回406.否则,它将指示它在响应的Content-Type头中选择的媒体类型。在Accept头中放入“\ */\ *”会告诉服务器客户端可以处理任何响应媒体类型。 – 2013-04-05 02:24:07
@JenS谢谢。我现在得到一个不同的错误 - 资源不可用。正如你可能知道的那样,获得不同的错误是开发者可以拥有的最大的乐趣之一! – Narnian 2013-04-05 12:28:57