An invalid request was received from your browser...Required header \'Accept\' missing

来源:互联网 发布:java中锁的概念 编辑:程序博客网 时间:2024/06/10 21:21

    昨天通过HttpClient访问一个网站的时候,响应提示403的错误:   

An invalid request was received from your browser. This may be caused by a malfunctioning proxy server or browser privacy software. Required header \'Accept\' missing

    这样的提示是因为header中少了必须的Accept头,我访问了不少其它的网站,倒没有出现在这样的问题,原来只是传了User-Agent这个请求头:   

headers.add(new Header("User-Agent", "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Ubuntu/10.04 Chromium/8.0.552.224 Chrome/8.0.552.224 Safari/534.10"));

    将请求头补充上Accept,完整的请求头如下:   

        headers.add(new Header("User-Agent", "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Ubuntu/10.04 Chromium/8.0.552.224 Chrome/8.0.552.224 Safari/534.10"));        headers.add(new Header("Accept", "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"));        headers.add(new Header("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3"));        headers.add(new Header("Accept-Encoding", "gzip,deflate,sdch"));        headers.add(new Header("Accept-Language", "en-US,en;q=0.8"));        headers.add(new Header("Cache-Control", "max-age=0"));

    这样就可以正常访问了,没有传COOKIE,这个是不需要登陆的,没有必要的。

本文出自:冯立彬的博客