【发布时间】:2012-12-26 04:06:14
【问题描述】:
我正在尝试一个从给定 URL 读取 HTML 内容的简单程序。在这种情况下,我尝试的 URL 不需要任何 cookie/用户名/密码,但我仍然收到 io.IOException: Server returned HTTP response code: 403 错误。谁能告诉我我在这里做错了什么? (我知道SO中有类似的问题,但他们没有帮助):
import java.net.*;
import java.io.*;
import java.net.MalformedURLException;
import java.io.IOException;
public class urlcont {
public static void main(String[] args) {
try {
URL u = new URL("http://www.amnesty.org/");
URLConnection uc = u.openConnection();
uc.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
uc.connect();
InputStream in = uc.getInputStream();
int b;
File f = new File("C:\\Users\\kausta\\Desktop\\urlcont.txt");
f.createNewFile();
OutputStream s = new FileOutputStream(f);
while ((b = in.read()) != -1) {
s.write(b);
}
}
catch (MalformedURLException e) {System.err.println(e);}
catch (IOException e) {System.err.println(e);}
}
}
【问题讨论】:
-
为什么是
int b而不是char b? -
嗯,不知道。为什么确实如此? Java 快把我逼疯了……
-
这段代码是从网上拿的吗?
-
不完全是,Oreilly 的
Java IO。我猜,read方法将读取的字节返回为无符号字节。 -
哦.. 抱歉,我没有看到 Stream。然后是对的。 :)
标签: java url io network-programming inputstream