Java Jodd Http Client с прокси

1

Я использовал библиотеку 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();
  • 0
    Он висит (на моей стороне), потому что не может открыть сокет до 10.30.56.70:8080 . Когда я пытаюсь telnet 10.30.56.70 8080 из командной строки, он также зависает.
Теги:
proxy
jodd

1 ответ

0

Для меня оба кода висят. Когда я пытаюсь Jodd, он зависает, потому что он не может открыть прокси-сокет до 10.30.56.70:8080. Когда я пытаюсь

telnet 10.30.56.70 8080

из командной строки тоже висит. Похоже, прокси не отвечает. (Вы можете обратиться в службу поддержки Jodd, если вам нужна дополнительная информация, или если вы хотите отправить некоторые личные данные о подключении.)

кстати, вам не нужно:

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

поскольку метод уже установлен в GET методом get() а charset не используется для запросов, но ответ (для установки одного, если не установлен сервером).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню