Форум сайта python.su
Друзья! Пишу программу на питоне 1.4.5. Основная её функция - соединение с сервером по протоколу HTTPS (порт 443). Для этого использую модуль httplib. Вот код-пример одного запроса на сервер:
import httplib, base64, urllib def tU(x): return unicode(x) def fH(x): return x.decode('hex') def tH(x): return x.encode('hex') def fU8(x): return x.decode('u8') def tU8(x): return x.encode('u8') def fB64(x): return x.decode('base64') def tB64(x): return x.encode('base64') def YaDiskPropfind(method,url,body,headers): conn = httplib.HTTPSConnection("webdav.yandex.ru", port=443) conn.request(method=method,url=url,body=body,headers=headers) resp = conn.getresponse() print '%s - %s'%(str(resp.status),str(resp.reason)) r=resp.read() return r # Метод соединения _method = 'PROPFIND / HTTP/1.1' # Директория на сервере _url = None # Тело запроса _body = """<D:propfind xmlns:D="DAV:"> <D:prop> <D:quota-available-bytes/> <D:quota-used-bytes/> </D:prop> </D:propfind>""" # Заголовки с параметрами запроса _headers = { "User-Agent": "Yandex Disk S60", "Content-Type": "text/xml", "Content-Length": str(len(_body)), "Host": "webdav.yandex.ru", "Accept": "*/*", "Depth": "0", "Authorization": "Basic %s"%tB64("<ИМЯ_АККАУНТА>:<ПАРОЛЬ>")[:-1] } print tU(YaDiskPropfind(_method,_url,_body,_headers))
Traceback (most recent call last): File "E:\private\2000b1a5\default.py", line 81, in menu_action f() File "E:\private\2000b1a5\default.py", line 65, in query_and_exec execfile(script_list[index][1].encode('utf-8'), script_namespace.namespace) File "c:\python\FreeSpace.py", line 41, in ? print tU(YaDiskPropfind(_method,_url,_body,_headers)) File "c:\python\FreeSpace.py", line 16, in YaDiskPropfind r=resp.read() File "E:\HTTPLIB.PY", line 239, in read s = self.fp.read() File "E:\HTTPLIB.PY", line 810, in read assert not self._line_consumed and self._line_left AssertionError
Офлайн