在某些代码中,我使用类似于Oracle教程的代码:Reading directly from a URL。 Oracle的代码也在下面:
import java.net.*;
import java.io.*;
public class URLReader {
public static void main(String[] args) throws Exception {
URL oracle = new URL("http://www.oracle.com/");
BufferedReader in = new BufferedReader(
new InputStreamReader(oracle.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
此代码之前有效但不再适用。即使我尝试完全相同的代码,inputLine也没有任何价值。我不知道它是否与java版本或elso有关,但我想知道为什么会发生这种情况,以及什么是一个很好的选择。
答案 0 :(得分:0)
Oracle -
运行程序时,您应该看到,在命令中滚动 窗口,HTML命令和HTML文件中的文本内容 位于http://www.oracle.com/。或者,程序可能会 挂起或者您可能会看到异常堆栈跟踪。如果是其中之一 发生后两个事件,您可能必须设置代理主机 该程序可以找到Oracle服务器。
<强> UNIX 强>
java -Dhttp.proxyHost = proxyhost [-Dhttp.proxyPort = portNumber] URLReader
DOS shell(Windows 95 / NT)
java -Dhttp.proxyHost = proxyhost [-Dhttp.proxyPort = portNumber] URLReader
另外,我实际上是在我的IDE上运行它,但它只适用于HTTPS
答案 1 :(得分:0)
如果您将http://www.oracle.com/替换为http://www.google.com/则可行。
这是因为GET http://www.oracle.com/给出了
HTTP/1.1 301 Moved Permanently
如果你跑
curl www.oracle.com
您获得相同的效果。您必须使用
关注重定向curl -L www.oracle.com
获取html内容。在Java中,您还必须遵循重定向,例如本文:
https://www.mkyong.com/java/java-httpurlconnection-follow-redirect-example/
答案 2 :(得分:0)
正如loris securo评论我需要使用https而不是http。这解决了我的问题。