はい、SOverflow にも同様の質問がありますが、残念ながら解決策は見つかりませんでした。
私の目標は: JAVAでsocks(v4 | 5)を介してURLコンテンツを取得する
私のサンプルコード:
String result = "";
SocketAddress addr = new InetSocketAddress("180.211.179.30", 1080);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);
URL url = new URL("http://api.exip.org/?call=ip");
URLConnection conn = url.openConnection(proxy);
BufferedReader in = new BufferedReader(
new InputStreamReader(
conn.getInputStream()));
StringBuilder response = new StringBuilder();
String inputLine;
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
result = response.toString();
System.out.println(result);
ただし、http(s) プロキシ タイプで動作している間は、常に「java.net.SocketException: SOCKS サーバーからの不正な応答」が返されます。
スレッド「メイン」での例外 java.net.SocketException: java.net.SocksSocketImpl.readSocksReply(SocksSocketImpl.java:128) の SOCKS サーバーからの不正な応答が java.net.SocksSocketImpl.connect(SocksSocketImpl.java:459) で java. net.Socket.connect(Socket.java:579) で java.net.Socket.connect(Socket.java:528) で sun.net.NetworkClient.doConnect(NetworkClient.java:180) で sun.net.www.http .HttpClient.openServer(HttpClient.java:378) at sun.net.www.http.HttpClient.openServer(HttpClient.java:473) at sun.net.www.http.HttpClient.(HttpClient.java:203) at sun. .net.www.http.HttpClient.New(HttpClient.java:290)、sun.net.www.http.HttpClient.New(HttpClient.java:306)、sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient (HttpURLConnection.java:995) (sun.net.www.protocol.http.HttpURLConnection)。plainConnect(HttpURLConnection.java:974) の sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:849) の sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1299) app.speedproxy.model.utils.TestJava.main (TestJava.java:33) で Java 結果: 1
私のシステム構成: Oracle JVM を使用した Ubuntu 12.04
Apache の httpclient と scocketfactory の実装を試しましたが、同じ例外が発生します。反省していただける方がいらっしゃいましたら、よろしくお願いいたします。ありがとう。