使用HttpClient抓取网页,返回状态400此错误是什么原因?
使用HttpClient抓取网页,有些网站能够正常返回 ,有的却返回不了,发现状态是400。不知道有人遇到过没有?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
使用HttpClient抓取网页,有些网站能够正常返回 ,有的却返回不了,发现状态是400。不知道有人遇到过没有?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
我用的版本是最新的4.2.3,百度了一下怎么设置Header发现几乎都是3.x版本的。看了官方文档,在请求的时候设置Header的方法是
httpClient.addRequestInterceptor(new HttpRequestInterceptor() {
@Override
public void process(HttpRequest request, HttpContext context)
throws HttpException, IOException {
request.addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)");
}
});
貌似没用。代码中,我是这样设置 UserAgent的:
request.addHeader("User-Agent","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)");
但网页上得到后,显示user-agent:Apache-HttpClient/4.2.3 (java 1.5)
再模拟一下相应的
userAgent数据吧,还有来源这些,劲量的模拟完全
不好意思。我的问题是在Java中,用的Apache HttpComponents
有些网站会验证
userAgent信息。你用HttpWebRequest(C#)就行了