Проблема с Python httplib2 на Linux - PullRequest
0 голосов
/ 06 июля 2011

Я использую следующий фрагмент кода для вызова веб-службы, для которой требуется базовая аутентификация:

import urllib
import httplib2
url='http://heywatch.com/download.json'
body={'username':'my_username','password':'my_password'}
header_data={'Accept': 'application/json'}
http=httplib2.Http()
response, content = http.request(url, 'POST', headers=header_data,     body=urllib.urlencode(body))

Я использую один и тот же фрагмент в двух разных средах:

Mac OSX 10.6.6, версия Python 2.6.1 - я получаю правильный ответ

Linux - centos, версия Python 2.6.6 - я получаю следующее исключение:

.....
File "/usr/lib/python2.6/site-packages/httplib2/__init__.py", line 1129, in _conn_request
    raise ServerNotFoundError("Unable to find the server at %s" % conn.host)
ServerNotFoundError: Unable to find the server at heywatch.com

Я запустил этот код на нескольких версиях Linux с разными версиями Python, и все работает отлично. Я также заметил, что curl не работает должным образом на конкретной машине. Следующая команда curl (которая имитирует приведенный выше код) отлично работает на моем Mac OSX:

curl -u username:password -X POST -d "url=https://s3.amazonaws.com/my_video_to_be_encoded.mov" -d "title=new_video" -d "automatic_encode=true" -d "ping_url_after_encode=http://mydomain/video_encode_success" https://heywatch.com/download.json

, но происходит сбой на зараженной рабочей станции Linux со следующим сообщением:

curl: (6) Couldn't resolve host 'heywatch.com'

Есть идеи, почему это происходит? Кажется, что некоторые настройки ОС неверны. Если это поможет, я использую версию linux amazon в amazon ec2, которая довольно заблокирована.

1 Ответ

0 голосов
/ 06 июля 2011

Это связано с тем, как Linux-окно разрешает heywatch.com. Можете ли вы пинговать, чтобы увидеть, доступен ли heywatch.com (вероятно, нет). Возможно, вы захотите посмотреть /etc/resolv.conf на вашем linux-боксе, чтобы увидеть, какие серверы имен настроены, и спросить amazon, используете ли вы какой-либо из них.

FWIW, я только что попытался разрешить heywatch на своей Ubuntu в линоде, и, похоже, он разрешается нормально.

...