Как в urllib2 сделать, чтоб соединение https шло через прокси-сервер. Вот взял я прокси, предварительно проверил, поддерживает ли он https(вбил в оперу и зашел на сайт проверки айпи через https, сайт показывал айпи прокси, тоесть все норм), дальше написал такой код: PHP: class atape_http_client: def __init__(self, proxy=None, user_agent='Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3'): self.cookie_handler=urllib2.HTTPCookieProcessor(cookielib.CookieJar()) self.redirect_handler = urllib2.HTTPRedirectHandler() self.http_handler = urllib2.HTTPHandler() self.https_handler = urllib2.HTTPSHandler() self.opener = urllib2.build_opener(self.http_handler, self.https_handler,self.cookie_handler, self.redirect_handler) if proxy: self.proxy_handler = urllib2.ProxyHandler(proxy) self.opener.add_handler(self.proxy_handler) self.opener.addheaders = [('User-agent', user_agent)] urllib2.install_opener(self.opener) def request(self, url, params={}, timeout=5): if params: params = urllib.urlencode(params) html = urllib2.urlopen(url, params) else: html = urllib2.urlopen(url) return html.read() myproxy='127.0.0.1:8080' atape=atape_http_client(proxy={'http':proxy}) d1=atape.request('https://mysite.com/') Но такой код выдает ошибку. Что я сделал не так?
redvel вы устанавливаете прокси для HTTP протокола, а не HTTPS proxy={'http'roxy} Плюс прокси, через которую работаете - должна поддерживать работу с HTTPS Покажите ошибку, которую выдает данный код
Это опечатка, у меня в коде {'https'roxy} Вот ошибка: URLError: <urlopen error (8, 'EOF occurred in violation of protocol') А как проверить прокси? я в первом посте написал как я делал, или так не катит?
redvel скачать например 3proxy и запустить с ключом "-l" чтобы посмотреть, что вы пытаетесь подключиться через прокси и что метод CONNECT работает Плюс у вас опечатка, не proxy, а myproxy Ваш код работает, проблема в прокси сервере
итак, перепробывал уже штук 20 прокси, причем, все они поддерживали метод Connect! Скрипт выдает все ту же ошибку( блин
А вдруг не поддерживали? Поставь Charles или CCProxy или Fiddler и проверь как будет этот код с ними работать.