簡體   English   中英

Java Jodd Http客戶端和代理

[英]Java Jodd Http Client with proxy

我使用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();

對我來說,兩個代碼都掛起。 當我嘗試Jodd時,它掛起,因為它無法將代理套接字打開到10.30.56.70:8080 當我嘗試

telnet 10.30.56.70 8080

從命令行也掛起。 代理似乎沒有響應。 (如果您需要更多詳細信息,或者要發送一些有關連接的私人數據,可以聯系Jodd支持。)

順便說一句,您不需要:

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

因為方法已經通過方法get()設置為GET ,並且charset不用於請求,但是用於響應(如果未由服務器設置,則設置一個)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM