3

HTTP 経由で Web サイトや API に接続するためにソケットを使用しています (URL クラスを使用すると簡単に接続できることはわかっていますが、この方法を選択した理由はいくつかあります)。

ここで、プライバシー機能を実装したいので、すべての接続をプロキシ経由でリダイレクトする必要があります。しかし、私はそれを行う際に問題に直面しています。

テスト目的で、 Free Proxy List Web サイトから無料のプロキシを探して選択しました。テスト ルーチン用にアップタイムの高いものを選択しましたが、今のところうまくいきません。

私のソースコード:

URL url = new URL("someurl");
InetSocketAddress address = new InetSocketAddress("202.77.110.22", 8080); 
java.net.Proxy javaProxy = new Proxy(Proxy.Type.SOCKS, address);
Socket server = new Socket(javaProxy);
server.connect(new InetSocketAddress(url.getHost(), url.getPort()));

プロキシ「202.77.110.22:8080」経由でURLに接続したい。Eclipse を使用してコードを実行すると、約 5 分間待たなければならず、その後次のエラーが表示されます。

SocketException: SOCKS サーバーからの不正な応答

Proxy.Type.SOCKS の代わりに Proxy.Type.HTTP を使用すると、次のエラー メッセージが表示されます。

IllegalArgumentException - 無効なプロキシ

この質問 (の形式) は既に Stackoverflow で尋ねられていることは知っていますが、どの回答も役に立ちませんでした。サポートされていないプロキシを選択した可能性がありますか? Apache HttpComponents を使用してテストしながら動作します。

すべての助けに感謝します。

4

2 に答える 2

2

Java 8 より前では、生のTCP ソケット接続は SOCKS プロキシを介してのみ機能しますIllegalArgumentException - Invalid Proxy。HTTP プロキシを介した raw ソケットの接続が追加されたのは、Java 8 だけでした。

于 2015-07-15T03:28:28.543 に答える