Я пытаюсь подключиться к своему личному прокси с помощью библиотеки 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)