2014-01-21 17 views
1

Я пытаюсь запустить следующий простой код:Python urllib2 дает ошибку 503

import urllib2 
import base64 

username = "some_user" 
password = "some_pass" 
url = "some_url" 

req = urllib2.Request(url) 
authheader = "Basic %s" % base64.encodestring('%s:%s' % (username, password)) 
req.add_header("Authorization", authheader) 
req.add_header('User-agent', 'Mozilla/5.0') 

resp = urllib2.urlopen(req) 
print resp.read() 

Он отлично работает на окнах, но на той же машине под Linux он не работает, это дает исключение URL с кодом 503. Я уверен, что с сервером проблем нет, потому что он отлично работает с Mozzila и curl (как под lin, так и с win). Что может вызвать эту проблему?

+0

Какое исключение он выбрасывает? –

+0

Он выбрасывает URLError с кодом 503 (Service Unavailable) - но я уверен, что сервис доступен, потому что я попробовал его с Mozzila и завиток. (503 в документах: http://docs.python.org/release/2.6/howto/urllib2.html) – user1724641

+0

Я подозреваю, что это связано с base64 и utf. Имеет ли ваш файл кодировку utf8? Попробуйте добавить это ontop: '#!/Usr/bin/env python # - * - кодирование: utf-8 - * -' –

ответ

1

У меня была аналогичная проблема, и в итоге я обнаружил, что переменная окружения «http_proxy» фактически указывает на прокси-сервер. Моя проблема исчезла, когда я либо удалил переменную среды, либо явно не установил ее в сценарии Python.

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