HttpClient与浏览器请求的结果不一样?
用百度的快递查询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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
能说详细点么?
谢谢大家!
解决了,cookie的问题。
用 wireshark 抓包
换个IP试试
禁用一下http的缓存试试
你用curl与wget请求的结果与 浏览器一致?
回复
一样的啊