HttpClient与浏览器请求的结果不一样?

发布于 2021-11-27 14:52:03 字数 1439 浏览 986 评论 7

用百度的快递查询API,在浏览器上访问能正常返回信息。

但是使用HttpClient 返回的信息始终都是一样的。

开始怀疑是服务器根据请求信息来判断是不是浏览器发出的请求,于是修改了代码里的请求头信息,已经尽量跟浏览器保持一致了,结果依然不行。

请问大神们这里还有什么需要注意的地方?

URL在这里:http://api.open.baidu.com/pae/channel/data/asyncqury?cb=jQuery1102022016299865208566_1417686284549&appid=4001&com=shentong&nu=123123123123&_=1417767163200
    HttpClient client = HttpClients.createDefault();
			String ur = IAPIConfig.URL;
			HttpGet get = new HttpGet(ur);
			get.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36");
//			get.setHeader("Host", "api.open.baidu.com");
			get.setHeader("Accept-Encoding", "gzip,deflate,sdch");
			get.setHeader("Accept-Language", "zh-CN,zh;q=0.8");
			get.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
			get.setHeader("cache-control", "max-age=0");
			
			HttpEntity e= client.execute(get).getEntity();
			InputStream in = e.getContent();
			BufferedReader br = new BufferedReader(new InputStreamReader(in));
	          String line = "";
	           while ((line = br.readLine()) != null) {
	            System.out.println(line);
	           }
	           br.close();



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

如此安好 2021-11-30 07:25:49

能说详细点么?

青萝楚歌 2021-11-30 07:24:58

谢谢大家!

解决了,cookie的问题。

永不分离 2021-11-30 07:21:58

用 wireshark 抓包

柠檬 2021-11-30 07:14:17

换个IP试试

刘备忘录 2021-11-30 07:09:23

禁用一下http的缓存试试

像你 2021-11-29 19:49:14

你用curl与wget请求的结果与 浏览器一致?

白龙吟 2021-11-29 03:21:49

回复
一样的啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文