7

次のコードは常に失敗するようです。

    URL url = new URL("http://userserve-ak.last.fm/serve/126/8636005.jpg");
    Image img = ImageIO.read(url);
    System.out.println(img);

URL を確認しましたが、有効な jpg 画像です。私が得るエラーは次のとおりです。

スレッド「メイン」での例外 javax.imageio.IIOException: URL から入力ストリームを取得できません!
javax.imageio.ImageIO.read(ImageIO.java:1385)
で maestro.Main2.main(Main2.java:25) で

原因: java.net.ConnectException: java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)の
java.net.AbstractPlainSocketImpl.socketConnect(Native Method)で 、java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl. java:176) で java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163) で java.net.Socket.connect(Socket.java:546) で java.net.Socket.connect(Socket.java:495) でsun.net.www.http.HttpClient.openServer (HttpClient.java:409) では、sun.net.NetworkClient.doConnect(NetworkClient.java:174)、sun.net.www.http.HttpClient.openServer(HttpClient.java: 530)








sun.net.www.http.HttpClient.(HttpClient.java:240)
で sun.net.www.http.HttpClient.New(HttpClient.java:321)
で sun.net.www.http.HttpClient.New( HttpClient.java:338)、sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:814)、sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:755 )
_
_
.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:680)
、sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1005)
、java.net.URL.openStream(URL ) .java:1029)
at javax.imageio.ImageIO.read(ImageIO.java:1383)
... 1 つ以上

Java 結果: 1

これは何を意味するのでしょうか?面白いことに、インターネット接続を隣人のワイヤレスの接続に変更すると、突然機能します。

4

3 に答える 3

2

これはおそらくホーム ネットワークでは起こりそうにありませんが、多くの企業が HTTP プロキシ サーバーを使用しているため、エラーが誤解を招く可能性があります。ブラウザーがプロキシ サーバーを使用するように構成されているため、多くの場合、URL は手動で正常に機能しているように見えます。コマンドラインまたはコードでプロキシ設定を設定できます。 http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.htmlを参照してください。

于 2010-06-11T14:11:46.587 に答える
0

このコードは私にとって完璧に機能します。

インターネット接続が非常に遅い場合は、それが原因です。または、何かをダウンロード/アップロードしています (http、トレント、ftp など)。

URL を手動で確認しましたが、有効であり、有効な jpg 画像が含まれています。

編集:

ブラウザでテストしましたか?もしそうなら、タイムアウトが長くなっている可能性があります。
ブラウザを使用して独自のネットワークで テストしましたか?

これは何を意味するのでしょうか?

タイムアウト例外は、ソケットを作成できなかったことを意味します。これにはいくつかの理由が考えられます。

  • サーバーが応答していません。
    • サーバーは非常にビジーです。
  • パッケージが失われます。これにはいくつかの理由も考えられます。
    • ダウンロード中で、ブロードバンドがいっぱいです。
    • あなたはインターネットプロバイダーの「中心」から遠く離れています。(あなたは田舎に住んでいます)
于 2010-06-11T14:29:50.693 に答える