java.net.URL接続にproxyの設定

2009/02/27 17:54Update
TAGS: URL | proxy | プロキシ | URLConnection

java.net.URLにproxy経由で接続を行うための設定方法について学びます。

URLにproxy経由で接続を行うに2つの設定方法があります。

1)システム・プロパティ変数にproxySet(プロキシを利用するかどうか)、proxyHost(プロキシホスト名)、proxyPort(プロキシホスト番号)などを設定する
設定例:
        System.setProperty("proxySet", "true");
        System.setProperty("proxyHost", "proxy.mydomain"); // プロキシサーバ  ドメイン名やIPアドレス
        System.setProperty("proxyPort", "8080"); // ポート番号


2)URL.openConnection(Proxy)メソッドで設定する
設定例:
          Proxy proxy = new Proxy(Proxy.Type.HTTP, 
                  new InetSocketAddress("proxy.mydomain", 8080));//プロキシサーバ ドメイン名やIPアドレス、ポート番号
          URLConnection conn = url.openConnection(proxy);   //プロキシで接続を開く


URL接続にproxy設定 サンプルコード


TestUrlProxy.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;

public class TestUrlProxy {

    /**
     * @param args
     */
    public static void main(String[] args) {
        testProxyWidthURL1() ;
        
        System.out.println("*************");
        testProxyWidthURL2() ;
    }
    
    //プロキシ経由でURL接続する方法1
    private static void testProxyWidthURL1() {
        //システムプロパティにて設定
        System.setProperty("proxySet", "true");
        System.setProperty("proxyHost", "proxy.mydomain"); // プロキシサーバ  ドメイン名やIPアドレス
        System.setProperty("proxyPort", "8080"); // ポート番号

        try {
            URL url = new URL("http://www.syboos.jp/");

            BufferedReader in = new BufferedReader(new InputStreamReader(url
                    .openStream()));
            String line;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //プロキシ経由でURL接続する方法2
    private static void testProxyWidthURL2() {  
      try {
          URL url = new URL("http://www.syboos.jp/");
          Proxy proxy = new Proxy(Proxy.Type.HTTP, 
                  new InetSocketAddress("proxy.mydomain", 8080));//プロキシサーバ ドメイン名やIPアドレス、ポート番号
          URLConnection conn = url.openConnection(proxy);   //プロキシで接続を開く
          BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
          
          String line;
          while ((line = in.readLine()) != null) {
              System.out.println(line);
          }
          
          in.close();
      } catch (IOException e) {
          e.printStackTrace();
      }
    }
}


参考資料


java.net.URL API仕様
java.net.URLConnection API仕様
java.net.Proxy API仕様

有关作者
Syboos.jp編集長AJavaやオープンソース情報の執筆、Webサイトの開発や運営全般の業務に携わる。

Sponsored Link


Comments

用户名 (required)

Email (will not be published) (required)

URL

Evaluation