工作中发现一个问题。当我用HttpURLConnection去连接读取一个网站时,老是会发生这个403错误。这个引起了IOException,但是我用firefox访问这个网站时就没问题。 google后知道了答案。原来如果用java代码HttpURLConnection去连的话 http header 中的User-Agent就为空,解决方法就是在连接之前先设置这个属性。
URL myUrl = new URL(searchURL);
URLConnection myConn = (HttpURLConnection)myUrl.openConnection();
myConn.setRequestProperty("User-agent","Mozilla/4.0");
BufferedReader br = new BufferedReader(new InputStreamReader(myConn.getInputStream()));
那台Server上要这么做, 可能是要组织一些网络机器人的访问(不过感觉不是很有用,用上面的方法就能破了)。 其实实现感觉也很简单, 加上一个Filter,判断如果request.getHeader("User-agent")为空的话,然后再response一个403 status就行。
分享到:
相关推荐
使用HttpURLConnection访问web页面[文].pdf
Android使用HttpURLConnection访问网络
Java自带的HttpURLConnection访问接口文件上传, 含普通参数值传递和文件传递
HttpURLConnection文件下载\httpURLConnection文件下载
基于HttpURLConnection的网络访问 已封装好,一句话访问网络 可采用GET和POST两种方式访问
HttpURLConnection的demo,里面有网络请求get post 上传文件,下载文件,介绍HttpURLConnection这个类整体流程是怎样使用的,方便初学者学习
HttpURLConnection访问网页下载图片示例代码,参见博文;http://blog.csdn.net/yanzi1225627/article/details/22222735
HttpUrlConnection获取json数据
自己写了一个基于httpurlconnection和Asynctask的例子
Java原生HttpUrlConnection访问WebService实例,附相关jar包...新手整理不喜勿喷
导语:个人对网络连接接触的不多,在使用时自己发现一些问题,记录一下。 正文:我在使用HttpURLConnection.getResponseCode()的时候直接报错是IOException错误,responseCode = -1。一直想不明白,同一个程序我调用...
代码包含了httpurlconnection基本操作,一些正常的操作。
使用HttpURLConnection发送短信
HttpURLConnection使用总结示例源码
一、 HttpURLConnection以GET方式访问网络: HttpURLConnection connection = null; try { URL url = new URL(https://www.xxx.com/); connection = (HttpURLConnection) url.openConnection(); connection....
java HttpURLConnection示例 HttpURLConnection工具
import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.Map; public class HttpTest { private HttpURLConnection hc = ...
web端就是一个简单的php页面,已经放在的我的sae albet.sinaapp.com上,直接使用demo中的url就行,当然,也可以把testPost.PHP放在自己的网站,把url改了就行
主要介绍了java后台调用HttpURLConnection类模拟浏览器请求实例,该实例可用于接口调用,具有一定的实用价值,需要的朋友可以参考下
调用URL对象的openConnection( )来获取HttpURLConnection对象实例: HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 设置HTTP请求使用的方法:conn.setRequestMethod("GET"); 设置连接超时,...