2010-05-25 6 views
1

Ниже приведен код и ошибка, которые он выбрасывает. Он отлично работает без прокси http = httplib2.Http().httplib2 дает внутреннюю ошибку сервера 500 с прокси

Когда я пытаюсь использовать тот же http-прокси в Firefox, он отлично работает.

Любые указатели приветствуются!

Использование:

http = httplib2.Http(proxy_info = httplib2.ProxyInfo(socks.PROXY_TYPE_HTTP, '68.48.25.158', 25681)) 

main_url = 'http://www.mywebsite.com' 
response, content = http.request(main_url, 'GET') 

Ошибка:

File "testproxy.py", line 17, in <module> 
    response, content = http.request(main_url, 'GET') 
    File "/home/kk/bin/pythonlib/httplib2/__init__.py", line 1129, in request 
    (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) 
    File "/home/kk/bin/pythonlib/httplib2/__init__.py", line 901, in _request 
    (response, content) = self._conn_request(conn, request_uri, method, body, headers) 
    File "/home/kk/bin/pythonlib/httplib2/__init__.py", line 862, in _conn_request 
    conn.request(method, request_uri, body, headers) 
    File "/usr/lib/python2.5/httplib.py", line 866, in request 
    self._send_request(method, url, body, headers) 
    File "/usr/lib/python2.5/httplib.py", line 889, in _send_request 
    self.endheaders() 
    File "/usr/lib/python2.5/httplib.py", line 860, in endheaders 
    self._send_output() 
    File "/usr/lib/python2.5/httplib.py", line 732, in _send_output 
    self.send(msg) 
    File "/usr/lib/python2.5/httplib.py", line 699, in send 
    self.connect() 
    File "/home/kk/bin/pythonlib/httplib2/__init__.py", line 740, in connect 
    self.sock.connect(sa) 
    File "/home/kk/bin/pythonlib/socks.py", line 383, in connect 
    self.__negotiatehttp(destpair[0],destpair[1]) 
    File "/home/kk/bin/pythonlib/socks.py", line 349, in __negotiatehttp 
    raise HTTPError((statuscode,statusline[2])) 
socks.HTTPError: (500, 'Internal Server Error') 

ответ

0

ли установлен SOCKS client library и доступны для вашего кода? Поддержка прокси-сервера работает только в том случае, если установлена ​​библиотека SOCKS.

+0

Я поставил socks.py на /home/kk/bin/pythonlib/socks.py .. По-прежнему не нужно .. Спасибо! – ThinkCode

1

Убедитесь, что прокси-сервер не прозрачен. Я не слишком много знаю об этом, но, очевидно, прозрачный прокси позволяет серверу видеть, что вы используете прокси-сервер и, возможно, даже получаете доступ к своему IP-адресу. Некоторые веб-сайты, безусловно, закрывают любые запросы, которые, как представляется, происходят из прокси (из страха ботов). Это может означать либо выброс фальшивой внутренней ошибки сервера, либо возникновение ошибки. Для меня использование анонимного прокси всегда решало эту проблему. Поскольку вы сказали, что это работает без прокси-сервера, я бы начал там.

+0

Спасибо. Я использовал анонимный прокси. Он отлично работал, когда я использовал его с Firefox, но не через httplib2. – ThinkCode

+0

Хм, так оно и работало, когда вы настраивали FF на использование прокси-сервера, покупка не удалась, когда вы использовали hhtplib2 ?. Теперь мое подозрение заключается в том, что ваш запрос был отклонен, поскольку в нем не было необходимого подмены заголовка пользовательского агента. В приведенном выше фрагменте кода не содержится ничего, чтобы предположить, что пользовательский агент был подделан. Это также может привести к ошибке 550. Однако htt2lib требует, чтобы вы сделали это , установите его как-то вроде «Mozilla/5.0 (X11; U; Linux i686; en-US; rv : 1.9.1.9) Gecko/20100401 Ubuntu/9.10 (кармический) Firefox/3.5.9' Это, вероятно, сделает это. – twneale

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