ソケットサーバーに接続するコードがあり、正常に動作します。HTTPプロキシ経由でソケットサーバーを接続する方法
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, port));
ここでHTTPプロキシ経由で接続したいのですが、どうすればよいですか?
は、私はこれを試してみましたSocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);
Socket socket = new Socket(proxy);
socket.connect(new InetSocketAddress(address, port));
this postは私がJakarta CommonsのHttpClientをを使用する必要がありますが、どのようにHTTPプロキシを経由してソケットサーバーを接続するためにそれを使用することを示唆しませんでしたか?
更新日: 私はHTTPプロキシを使用する場合、私はSOCKSプロキシを使用し、それが動作しません:
SocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
Socket socket = new Socket(proxy);
socket.connect(new InetSocketAddress(address, port));
をし、それはあなたが要求しているようにはIllegalArgumentException
java.lang.IllegalArgumentException: Proxy is null or invalid type
at java.net.Socket.<init>(Socket.java:88)
いくつかの良い情報を持っています。http://ダウンロード.oracle.com/javase/6/docs/technotes/guides/net/proxies.html –
sun.net.www.protocol.http.HttpURLConnectionにdoTunneling()があります。おそらく、そのクラスを選び、トンネルが確立された後でソケットの下にアクセスすることは可能かもしれませんが、いつでも離れる可能性のある適切なAPIを使用しています。これは、HttpClientを使用した場合には問題にはなりません。 – prunge
あなたはこれを理解することができますか?私が今見ている問題です。 – user2202911