Попытка подключиться к авторизации прокси с помощью net.dongliu.requests lib java - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь подключиться к своему личному прокси с помощью библиотеки github.com/hsiafan/requests.Я установил заголовок для аутентификации, и все выглядит нормально, но прокси-сервер отправляет ошибку 407.

Я пишу авторизатор для социальной сети, и мне нужно использовать прокси с ним.Запросы lib работают нормально во всех остальных случаях, но это что-то другое.

//proxy IP and login/password are OK
AuthProxy proxy = (AuthProxy) proxies[i];
Session session = Requests.session();
String response = session.get( "http://example.com").headers(
                        new Header("Proxy-Authorization", "Basic " + Base64.encode((proxy.login + ":" + proxy.password).getBytes())),
                        new Header("Proxy-Connection", "Keep-Alive")).timeout(5000).proxy(proxy).send().readToText();

Я пытался изменить GET на POST и даже использовать CONNECT для отправки данных на прокси (но с ошибкой, похоже, что Java не делаетне поддерживает запросы CONNECT).

Ошибка:

net.dongliu.requests.exception.RequestsException: java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 407 Proxy Authentication Required"
    at net.dongliu.requests.executor.URLConnectionExecutor.doRequest(URLConnectionExecutor.java:194)
    at net.dongliu.requests.executor.URLConnectionExecutor.proceed(URLConnectionExecutor.java:46)
    at net.dongliu.requests.InterceptorChain.proceed(InterceptorChain.java:22)
    at net.dongliu.requests.RequestBuilder.send(RequestBuilder.java:409)
    at main.Requester.auth(Requester.java:26)
    at main.Requester.<init>(Requester.java:15)
    at main.Main.main(Main.java:147)

Когда я пытаюсь выполнить запрос CONNECT, выдается эта ошибка:

net.dongliu.requests.exception.RequestsException: java.net.ProtocolException: Invalid HTTP method: CONNECT
    at net.dongliu.requests.executor.URLConnectionExecutor.doRequest(URLConnectionExecutor.java:135)
    at net.dongliu.requests.executor.URLConnectionExecutor.proceed(URLConnectionExecutor.java:46)
    at net.dongliu.requests.InterceptorChain.proceed(InterceptorChain.java:22)
    at net.dongliu.requests.RequestBuilder.send(RequestBuilder.java:409)
    at main.Requester.auth(Requester.java:26)
    at main.Requester.<init>(Requester.java:15)
    at main.Main.main(Main.java:147)
...