浏览器能访问 Java却返回Http500

wd9053 2010-06-27 04:10:07
想将目标网址的源代码抓过来,浏览器能够正常访问网页,可是Java连接却报错:
Exception in thread "main" java.io.IOException: Server returned HTTP response co
de: 500 for URL:
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown So
urce)
at Test.main(Test.java:21)
上网搜了一下,然后设置了User-Agent,可是结果不变。
User-Agent的值是ieHttpHeaders获取的,IE能够正常访问页面。

import java.io.*;
import java.util.*;
import java.net.*;
import java.sql.*;

public class Test
{
public static void main(String[] args) throws Exception
{
URL u = new URL("网址");
HttpURLConnection con = (HttpURLConnection)u.openConnection();
con.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C)");
InputStream is = con.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("test.html"));
byte[] arr = new byte[512];
int temp;
while((temp = bis.read(arr, 0, 512)) != -1)
{
bos.write(arr, 0, temp);
}
bos.flush();
bos.close();
bis.close();
}
}
...全文
534 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovepu 2010-06-28
  • 打赏
  • 举报
回复
顶顶···
xqyky 2010-06-28
  • 打赏
  • 举报
回复
这个页面检查用户权限,没有则返回一个500.所以你不能用getinputstream,要用geterrostream。
zhanlang9075 2010-06-28
  • 打赏
  • 举报
回复
来关注一下关于浏览器内部操作的帖子,以便更好的学习。
huntor 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wd9053 的回复:]

比如说这个
http://poj.youdao.com/nanti5/solution/170675/code/
[/Quote]
使用htmlunit 也有500错误,但可以获取网页内容。
wd9053 2010-06-27
  • 打赏
  • 举报
回复
比如说这个
http://poj.youdao.com/nanti5/solution/170675/code/
huntor 2010-06-27
  • 打赏
  • 举报
回复
可否说说是哪个网站?也去试试
wd9053 2010-06-27
  • 打赏
  • 举报
回复
补充一下,那个网站中只有我要下载的一批网页只能浏览器访问,其他网页浏览器和Java都能正常下载网页源代码
wd9053 2010-06-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 smileflyer 的回复:]
这应该是你请求的服务器上的页面出现问题了。
本身程序没发现问题。


HTML code
http://www.javaeye.com

测试过了。
[/Quote]
这个程序对于大多数网页都是正常的。
网页可能为了预防爬虫设置拒绝Java访问,所以我设置成IE浏览器的User-Agent,结果还是失败
wd9053 2010-06-27
  • 打赏
  • 举报
回复
额,我觉得这应该是服务器故意拒绝吧,我想用Java批量下载一些网页源代码
smileflyer 2010-06-27
  • 打赏
  • 举报
回复
这应该是你请求的服务器上的页面出现问题了。
本身程序没发现问题。
http://www.javaeye.com

测试过了。
龙四 2010-06-27
  • 打赏
  • 举报
回复
500不就是内部错误嘛!

也就是说服务器端的代码出问题了
一名程序员 2010-06-27
  • 打赏
  • 举报
回复
应该是代码的问题,比如函数调用方法与传的参数。明显是web服务器500内部错误。
取你猪头 2010-06-27
  • 打赏
  • 举报
回复
不清楚,但是帮顶!关注!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧