工作中发现一个问题。当我用HttpURLConnection去连接读取一个网站时,老是会发生这个403错误。这个引起了IOException,但是我用firefox访问这个网站时就没问题。
google后知道了答案。原来如果用java代码HttpURLConnection去连的话 http header 中的User-Agent就为空,解决方法就是在连接之前先设置这个属性。
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()));
URLConnection myConn = (HttpURLConnection)myUrl.openConnection();
myConn.setRequestProperty("User-agent","Mozilla/4.0");
BufferedReader br = new BufferedReader(new InputStreamReader(myConn.getInputStream()));
Tags: 403 HttpURLConnection
URL httpurl;
String str = "username=中国";
String url = "http://127.0.0.1:8080/login.do";
try {
str = URLEncoder.encode(str, "utf-8");
// 如有中文一定要加上,在接收方用相应字符转码即可
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
String str = "username=中国";
String url = "http://127.0.0.1:8080/login.do";
try {
str = URLEncoder.encode(str, "utf-8");
// 如有中文一定要加上,在接收方用相应字符转码即可
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
Tags: HttpURLConnection
我目的是把JSP页面转换成静态的HTML,url.openConnection()中的url是我项目中的JSP文件的路径,由于项目的页面有验证session是否失效,所以当url.openConnection()打开的页面时候session是空的,处理Session:ts.setRequestProperty("Cookie", "JSESSIONID=" + sessionId);request.getSession().getId()
代码如下:
代码如下:
复制内容到剪贴板 程序代码
public void getHtmlReport(String[] urlList,String protocol,String host,String sessionId ){
try
{
if(urlList.length < 1)
{
log.debug("Use: java TestSocket 所要转换的页面的URL [转换后要保存的文件名]");
try
{
if(urlList.length < 1)
{
log.debug("Use: java TestSocket 所要转换的页面的URL [转换后要保存的文件名]");
Tags: HttpURLConnection url