2015-12-01 3 views
1

Я боролся с прокси-сервером моей компании, чтобы сделать запрос https.API-интерфейс Python с использованием прокси-сервера для запроса https получить 407 Требуется аутентификация прокси-сервера

import requests 
from requests.auth import HTTPProxyAuth 

proxy_string = 'http://user:[email protected]_proxt:port_proxy' 

s = requests.Session() 
s.proxies = {"http": proxy_string , "https": proxy_string} 
s.auth = HTTPProxyAuth(user,password) 

r = s.get('http://www.google.com') # OK 
print(r.text) 
r = s.get('https://www.google.com',proxies={"http": proxy_string , "https": proxy_string}) #OK 
print(r.text) 
r = s.get('https://www.google.com') # KO 
print(r.text) 

Когда KO, у меня есть следующие исключения:

HTTPSConnectionPool(host='www.google.com', port=443): Max retries exceeded with url:/(Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required',))) 

Я посмотрел в Интернете, но не нашел кого-то, имеющие этот конкретный вопрос с HTTPS.

Спасибо за ваше время

ответ

0

Я лично решил вышеуказанную проблему в моей системе путем обновления переменных среды http_proxy, https_proxy, socks_proxy, FTP_PROXY.

Сначала введите команду на вашем терминале: printenv

Это должно показать вам переменные окружения в вашей системе.

В моем случае intially: http_proxy = http://proxyserver:port/

Я изменил его: http_proxy = http://username:[email protected]:port/

с помощью команды экспорта http_proxy = "HTTP: // имя пользователя: пароль @ прокси: порт /"

Аналогична для https_proxy, socks_proxy, ftp_proxy

0

Другого пути я решил это - говорить с вашим корпоративным ИТ-администратором и найти прямой порт прокси-сервера, который подключается к внешнему домену (с/без пароля)

пункт установить --proxy = http://proxyhost: proxy_port PixieDust

Найдено от других коллег, используя прокси-сервер (proxy_port прямое соединение) в настройках затмений (сети)

Смежные вопросы