HTTP标头设置问题

时间:2017-03-02 01:32:26

标签: http header

我正在尝试使用HTTP标头中的以下设置在我的客户端(而不是浏览器)中提取网页

Accept: "text/html;charset=UTF-8"
Accept-Charset: "ISO-8859-1"
User-Agent: "Mozilla/5.0"

然而我收到错误代码406, 我也试过换到;

Accept: "text/html"

没有成功;响应头中的错误代码和状态消息是

statusCode: 406
statusMessage: "Not Acceptable"

任何想法应该是正确的标题设置,页面在浏览器中正常加载

3 个答案:

答案 0 :(得分:1)

终于想通了,我跑了一个嗅探器,看看哪个标头设置有效,这里有什么效果

标题:{     'User-Agent':'Mozilla / 5.0(Macintosh; U; Intel Mac OS X; de-de)AppleWebKit / 523.10.3(KHTML,类似Gecko)Version / 3.0.4 Safari / 523.10',                     'Accept-Charset':'ISO-8859-1,UTF-8; q = 0.7,*; q = 0.7',                     '接受语言':'de,en; q = 0.7,en-us; q = 0.3'         }

答案 1 :(得分:0)

您应该添加Accept-Language。见Here

答案 2 :(得分:-1)

为什么要发送矛盾的标题?您正在请求同时为UTF8和ISO-8859-1的表示。我想您可以将请求解释为7位ASCII表示。

在这种情况下,我会省略Accept-Charset并将Accept标题更改为text/html, */*;q=0.1,这样您就可以获得强烈偏好HTML的内容。有关这些标头的详细信息,请参阅the Content Negotiation section of RFC7231