Я делаю сайт Django, и я довольно новый.В этом веб-приложении мне нужно использовать этот API, который будет выдавать XML-файл с запрошенными данными из базы данных.В основном URL API:
https://adminuser:password@url.to.database.com/database.getdata?arg=1&arg2=0
Итак, в моем python views.py у меня есть:
def fetch_xml(url):
import urllib
import xml.etree.cElementTree as xml_parser
u = urllib.URLopener(None)
usock = u.open(url)
rawdata = usock.read()
usock.close()
return xml_parser.fromstring(rawdata)
, который я получил от http://www.webmonkey.com/2010/02/integrate_web_apis_into_your_django_site/
Однако я получил следующую ошибку прямо в строке usock = u.open(url)
IOError at /webapp/
[Errno socket error] [Errno 1] _ssl.c:480: error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac
Я прочитал в документации urllib
, что IOError выбрасывается, если не удается установить соединение.http://docs.python.org/library/urllib.html Кроме того, в Википедии фатальное предупреждение «Плохая запись MAC» означает «Возможно, неправильная реализация SSL, или полезные данные были подделаны. Например, правило брандмауэра FTP на сервере FTPS».Чего я не понимаю, так это того, что когда я вставляю URL в браузер, он работает нормально и выплевывает XML-файл.
Я также подумал (в общем), что это может быть моя установка Apache, поэтому я проверилэтот mod_ssl загружался, набирая apachectl -t -D DUMP_MODULES
в терминале, и он загружается как общий.
Любые идеи будут с благодарностью.Спасибо!