Python: проблема при отображении в виде списка httplib.HTTPMessage - PullRequest
3 голосов
/ 12 марта 2012

У меня здесь небольшая проблема. Итак, я пишу несколько звонков для хорошо известного REST API. Все идет хорошо, за исключением того факта, что я хочу, чтобы все ответы отображались в виде списка (что мне лучше манипулировать). Моя функция такова:

import sys, httplib

HOST =  "api.sugarsync.com"
API_URL = "https://api.sugarsync.com"

def do_request(xml_location):
       request = open(xml_location,"r").read()
       webservice = httplib.HTTPS(HOST)
       webservice.putrequest("POST", "authorization", API_URL)
       webservice.putheader("Host", HOST)
       webservice.putheader("User-Agent","Python post")
       webservice.putheader("Content-type", "application/xml")
       webservice.putheader("Content-type", "application/xml")
       webservice.putheader("Accept", "*/*")
       webservice.putheader("Content-length", "%d" % len(request))
       webservice.endheaders()
       webservice.send(request)
       statuscode, statusmessage, header = webservice.getreply()
       result = webservice.getfile().read()
       return statuscode, statusmessage, header
       return result

do_request('C://Users/my_user/Documents/auth.xml')

Я привык использовать split (), но в этом случае результат таков:

[201, 'Created', <httplib.HTTPMessage instance at 0x0000000001F68AC8>]

Что ж, мне нужен также третий объект (экземпляр httplib.HTTPMessage по адресу 0x0000000001F68AC8>), который должен отображаться в виде списка, чтобы извлечь некоторые данные из него.

Заранее спасибо!

1 Ответ

1 голос
/ 12 марта 2012

httplib.HTTPMessage - это что-то вроде dict, вот пример:

import httplib
from cStringIO import StringIO

h = httplib.HTTPMessage(StringIO(""))
h["Content-Type"] = "text/plain"
h["Content-Length"] = "1234"

print h.items()

вы просто вызываете его элементы функции (), он возвращает список заголовков

...