2016-08-31 3 views
1

Я иду через Dive в Python3. Когда я перейду в раздел раздела 14 веб-сервисов http, я не могу дублировать следующий вывод в оболочке python3. Вот то, что образец кода выглядит следующим образом:получение http debug info

from http.client import HTTPConnection 
HTTPConnection.debuglevel = 1 
from urllib.request import urlopen 
response = urlopen('http://diveintopython3.org/examples/feed.xml') 

send: b'GET /examples/feed.xml HTTP/1.1 
Host: diveintopython3.org 
Accept-Encoding: identity 
User-Agent: Python-urllib/3.1' 
Connection: close 
reply: 'HTTP/1.1 200 OK' 
…further debugging information omitted… 

Когда я вхожу в это ipython3, последняя команда не дает никакого выхода. Так почему я не получаю отладочную информацию в примере? После ввода вышеуказанного кода response.debuglevel == 0. Я использую python3.5.2.

+0

вы должны быть установлен в значение уровня отладки на HttpConnection, а не ответ – danyamachine

+0

И вы должны использовать 'urllib2.urlopen()' поскольку 'urllib' устарел в Python3: https://docs.python.org/2/library/urllib.html – alfasin

+0

@alfasin Это неправильно по вашей собственной ссылке:« Также обратите внимание, что функция urllib.request.urlopen() в Python 3 эквивалентен urllib2.urlopen() и что urllib.urlopen() удален ». – Jakub

ответ

2

Последняя команда не должна давать какой-либо вывод, что вы, вероятно, хотите есть:

print(response.read()) 
+0

Он дает вывод отладки, указанный в вопросе, когда я запускаю код python на своем ноутбуке. Я проверил ссылки, которые вы связываете. urllib получил раскол в urllib.request, urllib.parse и urllib.error. Кажется, что urllib2 фактически не рекомендуется. – William234234