Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

URLオブジェクトの作成ができない

javaを勉強中です。
http://ash.jp/java/java_http.htmから
ソースをコピペして実行したところ
エラーが出てしまいます。
System.out.println("URL: " + url);という行を
1行ずつ入れて実行したところ
if (proxyHost == null) {
という行の手前までは正常に動いているようですが
if (proxyHost == null) {
という行の次の行にSystem.out〜を入れても
表示されないためこのif文でエラーが出ていると思われますが、Javaは始めたてなので何が悪いかわかりません。どなたかご教授下さるようよろしくお願いいたします。

以下のソースがコピペしたソースに
String url = "http://www.yahoo.co.jp/";
の行のダブルクォーテーション内を変更し、
System.out.println("URL: " + url);
を入れたものです。


import java.io.*;
import java.net.*;

/** Httpプロトコルによるソース表示(HttpURLConnectionクラス利用) **/
public class HttpUrl {
  public static void main(String args[]) {
    //String url = "http://ash.jp/";
    String url = "http://www.yahoo.co.jp/";
    String proxyHost = "";
    int    proxyPort = 8080;

    URL urlObj;
    HttpURLConnection urlCon;
    BufferedReader urlIn;
    String str;

    if (args.length > 0) {
      url = args[0];
    }
    System.out.println("URL: " + url);

    try {
      // URLオブジェクトの作成
      System.out.println("URL: " + url);
      if (proxyHost == null) {
      System.out.println("URL: " + url);
        urlObj = new URL(url);
          
      } else {
        urlObj = new URL("http", proxyHost, proxyPort, url);
      }

      // URL接続
      urlCon = (HttpURLConnection)urlObj.openConnection();
      urlCon.setRequestMethod("GET");
      urlIn = new BufferedReader(new InputStreamReader(urlCon.getInputStream()));

      // HTMLソースの表示
      while ((str = urlIn.readLine()) != null) {
        System.out.println(str);
      }

      // URL切断
      urlIn.close();
      urlCon.disconnect();

    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}

以下実行結果です。

URL: http://www.yahoo.co.jp/
URL: http://www.yahoo.co.jp/
java.net.ConnectException: Connection refused: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:519)
        at java.net.Socket.connect(Socket.java:469)
        at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
        at sun.net.www.http.HttpClient.New(HttpClient.java:306)
        at sun.net.www.http.HttpClient.New(HttpClient.java:323)
        at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLC
onnection.java:837)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConne
ction.java:778)
        at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection
.java:703)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLCon
nection.java:1026)
        at HttpUrl.main(HttpUrl.java:36)

2

回答

7113

閲覧

2件の回答

評価

0

すみません。自己レスです。
String proxyHost = "";

 String proxyHost = null;
に修正したらできました。
ご迷惑おかけしてすみませんでした。

評価

0

>Javaは始めたてなので何が悪いかわかりません。
コピペで済ませようなんて考え方が悪い。
基礎からやりな。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。