2016-08-31 3 views
1

Je suis en train de plonger dans Python3. Quand j'arrive au chapitre sur les services Web http section 14.4, je n'arrive pas à dupliquer la sortie suivante dans le shell python3. Voici ce que l'exemple de code ressemble à:Obtenir des informations de débogage http

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… 

Quand je rentre cela dans ipython3, la commande finale ne donne aucune sortie. Alors pourquoi ne reçois-je pas les informations de débogage dans l'exemple? Response.debuglevel == 0 après avoir entré le code ci-dessus, j'utilise python3.5.2.

+0

vous devez définir le niveau de débogage sur HTTPConnection, et non sur la réponse – danyamachine

+0

Et vous devez utiliser 'urllib2.urlopen()' puisque 'urllib' est obsolète dans Python3: https://docs.python.org/2/library/urllib.html – alfasin

+0

@alfasin C'est faux par rapport à votre propre lien:" Notez aussi que la fonction urllib.request.urlopen() dans Python 3 est équivalent à urllib2.urlopen() et que urllib.urlopen() a été supprimé. " – Jakub

Répondre

2

La commande finale ne doit pas donner une sortie, ce que vous voulez sans doute est:

print(response.read()) 
+0

Il donne la sortie de débogage montrée dans la question quand je cours le code de python sur mon ordinateur portable. J'ai vérifié les documents que vous liez. urllib a été divisé en urllib.request, urllib.parse et urllib.error. Il semble que urllib2 est réellement obsolète. – William234234