В Python, что возвращает getresponse ()? - PullRequest
11 голосов
/ 18 ноября 2009
 import httplib
    conn = httplib.HTTPConnection(head)
    conn.request("HEAD",tail)
    res = conn.getresponse()

Я могу получить res.status , который является кодом статуса http.

Какие еще элементы я могу получить? Почему при печати res словарь не печатается? Я просто хочу увидеть ключи, которые есть в этом словаре ...

1 Ответ

23 голосов
/ 18 ноября 2009

Вы всегда можете осмотреть объект, используя dir; это покажет вам, какие атрибуты у него есть.

>>> import httplib
>>> conn = httplib.HTTPConnection("www.google.nl")
>>> conn.request("HEAD", "/index.html")
>>> res = conn.getresponse()
>>> dir(res)
['__doc__', '__init__', '__module__', '_check_close', '_method', '_read_chunked', '_read_status', '_safe_read', 'begin', 'chunk_left', 'chunked', 'close', 'debuglevel', 'fp', 'getheader', 'getheaders', 'isclosed', 'length', 'msg', 'read', 'reason', 'status', 'strict', 'version', 'will_close']

Аналогично, вы можете вызвать help, который покажет документацию объекта, если он имеет атрибут __doc__. Как видите, это относится к res, поэтому попробуйте:

>>> help(res)

Кроме этого, в документации говорится, что getresponse возвращает объект HTTPResponse. Таким образом, как вы можете прочитать там (и в help(res)), следующие объекты и методы определены для HTTPResponse объектов:

  • HTTPResponse.read([amt]): Читает и возвращает тело ответа или до следующих байтов.

  • HTTPResponse.getheader(name[, default]): Получить содержимое имени заголовка или значение по умолчанию, если нет соответствующего заголовка.

  • HTTPResponse.getheaders(): Возвращает список (заголовок, значение) кортежей. (Новое в версии 2.4.)

  • HTTPResponse.msg: Экземпляр mimetools.Message, содержащий заголовки ответа.

  • HTTPResponse.version: Версия протокола HTTP, используемая сервером. 10 для HTTP / 1.0, 11 для HTTP / 1.1.

  • HTTPResponse.status: Код состояния, возвращаемый сервером.

  • HTTPResponse.reason: Фраза причины, возвращаемая сервером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...