直接从网址阅读 - 不工作

时间:2017-02-25 21:40:19

标签: java url

在某些代码中,我使用类似于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有关,但我想知道为什么会发生这种情况,以及什么是一个很好的选择。

3 个答案:

答案 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。这解决了我的问题。