2017-03-02 141 views
2

我想在HTTP头问题与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" 

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

+0

您是不是正在执行GET请求目标网址?您甚至不需要为大多数网站指定,您是否尝试不使用“Accept”标头? –

+0

试过,但我得到相同的406错误状态,这就是为什么我试图设置标题字段。 – satyendra

+0

你能从你的浏览器访问这个URL吗? –

回答

-1

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

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

+0

,这有点帮助,但不是全部。我有13个网址之前,我做你建议的更改,都失败了,我现在有10个网址,失败的:-),所以它做了一点点帮助 – satyendra

1

终于想通了,我跑了嗅探器,看看哪些头的设置工作,而这里是在任何情况下工作

标题:{ “用户代理”:“Mozilla的/ 5.0(Macintosh的;ü ;英特尔的Mac OS X; DE-DE)为AppleWebKit/523.10.3(KHTML,例如Gecko)版本/ 3.0.4 Safari浏览器/ 523.10' , '接收字符集':“ISO-8859-1,utf-8; q = 0.7,*; q = 0.7', 'Accept-language':'de,en; q = 0.7,en-us; q = 0.3' }

+0

接受头是HTTP的一个棘手的部分。我猜在'Accept-Charset'头文件中帮助很多的部分是'*; q = 0.7'。我建议在质量为0.2-IOW,'Accept-Language:de,en; q = 0.7,en-us; q = 0.3,*; q = 0.2'的基础上增加一个类似的子句给'Accept-Language'。如果没有通配符匹配,您就有可能为没有明确支持英文或德文的网站获得406。 –