У меня есть простой веб-сайт, который я тестирую. Он работает на localhost, и я могу получить к нему доступ в своем веб-браузере. Индексная страница - это просто слово «бег». urllib.urlopen
успешно прочитает страницу, но urllib2.urlopen
не будет. Вот скрипт, который демонстрирует проблему (это реальный сценарий, а не упрощение другого тестового сценария):urllib.urlopen работает, но urllib2.urlopen не
import urllib, urllib2
print urllib.urlopen("http://127.0.0.1").read() # prints "running"
print urllib2.urlopen("http://127.0.0.1").read() # throws an exception
Вот трассировки стека:
Traceback (most recent call last):
File "urltest.py", line 5, in <module>
print urllib2.urlopen("http://127.0.0.1").read()
File "C:\Python25\lib\urllib2.py", line 121, in urlopen
return _opener.open(url, data)
File "C:\Python25\lib\urllib2.py", line 380, in open
response = meth(req, response)
File "C:\Python25\lib\urllib2.py", line 491, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Python25\lib\urllib2.py", line 412, in error
result = self._call_chain(*args)
File "C:\Python25\lib\urllib2.py", line 353, in _call_chain
result = func(*args)
File "C:\Python25\lib\urllib2.py", line 575, in http_error_302
return self.parent.open(new)
File "C:\Python25\lib\urllib2.py", line 380, in open
response = meth(req, response)
File "C:\Python25\lib\urllib2.py", line 491, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Python25\lib\urllib2.py", line 418, in error
return self._call_chain(*args)
File "C:\Python25\lib\urllib2.py", line 353, in _call_chain
result = func(*args)
File "C:\Python25\lib\urllib2.py", line 499, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 504: Gateway Timeout
Любые идеи? Мне может понадобиться некоторые из более продвинутых функций urllib2
, поэтому я не хочу просто использовать urllib
, а также хочу понять эту проблему.
Это устранило проблему, хотя я понятия не имею, как и почему она думала использовать прокси-сервер, поскольку мой скрипт был всего три строки, и у меня нет переменных среды, которые указывают что-либо о любом прокси-сервере. Тем не менее, хорошо, что это разрешилось, поэтому спасибо за помощь. – 2008-10-14 18:09:31