2017-02-25 5 views
1

一部のコードでは、私はOracleのチュートリアル:Reading directly from a URLに似たコードを使用しています。オラクルのコードは以下のとおりです。URLから直接読む - 動作しない

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

例外はスローされていませんか? ipv4またはipv6を使用していますか? – rvit34

+0

は 'https:// www.oracle.com /'( 'https'に' s'を付けて)を使って動作するようです。 –

+0

try-catch-finallyやtry-withリソースブロックでコードを囲み、再実行してみてくださいそれ – rvit34

答えて

0

オラクル - あなたがプログラムを実行すると、あなたは、コマンド ウィンドウにすることにより、スクロール、表示されるはずです

http://www.oracle.com/にあるHTMLファイル からHTMLコマンドやテキストの内容。または、プログラムが ハングするか、例外スタックトレースが表示されることがあります。後の2つのイベントのいずれかが発生した場合は、 プログラムがOracleサーバーを検出できるようにプロキシホストを設定する必要があります。

  • プロキシホストは、コマンドラインから設定できます。 のネットワーク設定に応じて、プロキシ ポートを設定する必要があります。必要に応じて、ネットワーク上の プロキシホストの名前をシステム管理者に問い合わせてください。

UNIX

のjavaます。-Dhttp.proxyHost = proxyhost [-Dhttp.proxyPort =のportNumber] URLReader

DOSシェル(Windowsの95/NT)

のjava - Dhttp.proxyHost = proxyhost [-Dhttp.proxyPort = portNumber] URLReader

また、実際にIDEで実行しましたが、それだけで動作しますHTTPS

0

http://www.oracle.com/http://www.google.com/に置き換えると動作します。

GET http://www.oracle.com/ためですが、あなたが

curl www.oracle.com 

を実行する場合は、同様の効果を得る

HTTP/1.1 301 Moved Permanently 

を与えます。あなたはリダイレクトに従って、htmlコンテンツを取得するために

curl -L www.oracle.com 

を取得する必要があります。 Javaでは、あなたはまた、このような、この記事のように、リダイレクトに従わなければならない:ロリスsecuroとして

https://www.mkyong.com/java/java-httpurlconnection-follow-redirect-example/

0

を私はhttpの代わりにhttpsを使用するために必要なコメント。そしてそれは私の問題を解決しました。

関連する問題