HttpURLConnection 读取网络图片的问题 急求 javaurl浏览器图片异常 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接访问 出现了一个302 的跳转 Request URL:http://www.offerwow.cn/image/offerwow_staging/logo/1406880082963.jpg返回:Connection:keep-aliveContent-Length:0Date:Fri, 19 Sep 2014 09:08:00 GMTKeep-Alive:timeout=5Location:http://121.37.63.66/offerwow_staging/logo/1406880082963.jpgServer:nginx/1.4.7 最终浏览器显示的地址 : http://121.37.63.66/offerwow_staging/logo/1406880082963.jpg这种302 跳转 模式 HttpURLConnection 默认就处理啊 不需要做其他的 操作 我也测试了其他的网站 给一个302的跳转链接 能正常跳转 那么你观察一下 http 通信的过程中重定向跳转时有没有什么 Referer 之类的东西 (引用页),有些网站在你直接 GET 时没带引用页时会拒绝服务,因此它知道你是在盗链。找一个 Eclipse 中的 TCP/IP Monitor 视图配置一个 forwarder 来观察 Http 过程。 跳转时候 没有 Referer 但是浏览器 却能正常显示 本帖最后由 fangmingshijie 于 2014-09-19 17:41:37 编辑 你这里都没跳转啊 在浏览器 会出现一个 302 的跳转 直接访问 出现了一个302 的跳转 Request URL:http://www.offerwow.cn/image/offerwow_staging/logo/1406880082963.jpg返回:Connection:keep-aliveContent-Length:0Date:Fri, 19 Sep 2014 09:08:00 GMTKeep-Alive:timeout=5Location:http://121.37.63.66/offerwow_staging/logo/1406880082963.jpgServer:nginx/1.4.7 为什么在代码里面跳转不过去呢 URL url = new URL("http://www.offerwow.cn/image/offerwow_staging/logo/1406880082963.jpg"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestProperty("User-agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1"); con.setRequestProperty("accept-language", "zh-CN"); con.setInstanceFollowRedirects(true); con.addRequestProperty("Cache-Control", "no-cache"); con.connect(); System.out.println(con.getURL().toString()); //这里打印http://www.offerwow.cn/image/offerwow_staging/logo/1406880082963.jpg int code=con.getResponseCode(); System.out.println(con.getURL().toString()); //这里打印http://www.offerwow.cn/image/offerwow_staging/logo/1406880082963.jpg自己看下打印的url还不明白吗?302必须设置User-agent和accept-language,跳转是浏览器帮你的。 哦 明白了 谢谢大神 没想到 还有这么个规则 ........ 但是我 测试其他 url 不加 这两个User-agent和accept-language 一样可以正常跳转哦 这个是为什么啊 我试了一下事实说明 跟你这个 设置User-agent和accept-language 没有什么关系 是服务器 拦截到了 我的url 没有跳转 在线等!org.hibernate.TransientObjectException: object references an unsaved transie 求大神来解答 是强转的问题吗? Struts获取不到表单提交过来的数据? 关于java开发中数据库的链接问题~~~~~~~~~~~~~~~~~· 谁知道? filter用户验证 在Linux平台下使用JFreeChart错误 log4j中將日志寫入到oracle數據庫中,提示sql錯誤:字符串不合法,請求幫助? 使用struts,如何防止页面刷新重复提交数据? 关于ognl中s:checkboxList的几个疑问?? 关于Jacob生成PDF的问题,遇到有问题的office文件,生成出现问题,在线等急急急!
Request URL:http://www.offerwow.cn/image/offerwow_staging/logo/1406880082963.jpg返回:
Connection:keep-alive
Content-Length:0
Date:Fri, 19 Sep 2014 09:08:00 GMT
Keep-Alive:timeout=5
Location:http://121.37.63.66/offerwow_staging/logo/1406880082963.jpg
Server:nginx/1.4.7 最终浏览器显示的地址 : http://121.37.63.66/offerwow_staging/logo/1406880082963.jpg这种302 跳转 模式 HttpURLConnection 默认就处理啊 不需要做其他的 操作 我也测试了其他的网站 给一个302的跳转链接 能正常跳转
跳转时候 没有 Referer 但是浏览器 却能正常显示
直接访问 出现了一个302 的跳转
Request URL:http://www.offerwow.cn/image/offerwow_staging/logo/1406880082963.jpg返回:
Connection:keep-alive
Content-Length:0
Date:Fri, 19 Sep 2014 09:08:00 GMT
Keep-Alive:timeout=5
Location:http://121.37.63.66/offerwow_staging/logo/1406880082963.jpg
Server:nginx/1.4.7
为什么在代码里面跳转不过去呢
URL url = new URL("http://www.offerwow.cn/image/offerwow_staging/logo/1406880082963.jpg");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("User-agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1");
con.setRequestProperty("accept-language", "zh-CN");
con.setInstanceFollowRedirects(true);
con.addRequestProperty("Cache-Control", "no-cache");
con.connect();
System.out.println(con.getURL().toString()); //这里打印http://www.offerwow.cn/image/offerwow_staging/logo/1406880082963.jpg
int code=con.getResponseCode();
System.out.println(con.getURL().toString()); //这里打印http://www.offerwow.cn/image/offerwow_staging/logo/1406880082963.jpg自己看下打印的url还不明白吗?302必须设置User-agent和accept-language,跳转是浏览器帮你的。
哦 明白了 谢谢大神 没想到 还有这么个规则 ........ 但是我 测试其他 url 不加 这两个User-agent和accept-language 一样可以正常跳转哦 这个是为什么啊
我试了一下事实说明 跟你这个 设置User-agent和accept-language 没有什么关系 是服务器 拦截到了 我的url 没有跳转