2

Jodd Http ライブラリを使用してプロキシに接続しました。

    ProxyInfo proxyInfoObj = new ProxyInfo(ProxyType.HTTP, "10.30.56.70", 8080, "", "");
    SocketHttpConnectionProvider provider =  new SocketHttpConnectionProvider();
    provider.useProxy(proxyInfoObj);
    HttpRequest request = HttpRequest.get(url);
    request.method("GET");
    request.charset("UTF-8");
    HttpResponse response = request.open(provider).send();
    result = response.bodyText();

しかし、私はこのエラーが発生しました:

    jodd.http.HttpException: HTTP: Invalid code
    at jodd.http.net.HTTPProxySocketFactory.createHttpProxySocket(HTTPProxySocketFactory.java:113)
    at jodd.http.net.HTTPProxySocketFactory.createSocket(HTTPProxySocketFactory.java:32)

SOCKS4 タイプを使用すると、プログラムがハングして何も返されません。誰でも私を助けることができますか?

ただし、次のコードを使用してプロキシ経由で接続できます。

   Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("10.30.56.70", 8080));
    HttpURLConnection connection =(HttpURLConnection)new URL("http://tvl.csmtalk.vn/api/sms/receive").openConnection(proxy);
    connection.setDoOutput(true);
    connection.setDoInput(true);
    connection.setRequestProperty("Content-type", "text/xml");
    connection.setRequestProperty("Accept", "text/xml, application/xml");
    connection.setRequestMethod("GET");
    connection.connect();
4

1 に答える 1

1

私にとっては、両方のコードがハングします。Jodd を試すと、へのプロキシ ソケットを開くことができないため、ハングします10.30.56.70:8080。しようとすると

telnet 10.30.56.70 8080

コマンドラインからもハングします。プロキシが応答していないようです。(詳細が必要な場合、または接続に関するプライベート データを送信したい場合は、Jodd サポートに連絡できます。)

ところで、あなたはする必要はありません:

request.method("GET");
request.charset("UTF-8");

method はすでにメソッドGETによって設定されてget()おり、charset はリクエストには使用されませんが、response (サーバーによって設定されていない場合に設定する) として使用されます。

于 2014-08-30T04:11:19.463 に答える