python: httplib erreur: ne peut pas envoyer des en-têtes
conn = httplib.HTTPConnection('thesite')
conn.request("GET","myurl")
conn.putheader('Connection','Keep-Alive')
#conn.putheader('User-Agent','Mozilla/5.0(Windows; u; windows NT 6.1;en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome//5.0.375.126 Safari//5.33.4')
#conn.putheader('Accept-Encoding','gzip,deflate,sdch')
#conn.putheader('Accept-Language','en-US,en;q=0.8')
#conn.putheader('Accept-Charset','ISO-8859-1,utf-8;1=0.7,*;q=0.3')
conn.endheaders()
r1= conn.getresponse()
Il génère une erreur:
conn.putheader('Connection','Keep-Alive')
File "D:\Program Files\python\lib\httplib.py", line 891, in putheader
raise CannotSendHeader()
Si j'en commentaire putheader
et endheaders
, il fonctionne très bien. Mais j'ai besoin de garder vivante.
Personne ne sait ce que j'ai fait de mal?
OriginalL'auteur Grey | 2010-08-13
Vous devez vous connecter pour publier un commentaire.
Utilisation
putrequest
au lieu derequest
. Depuisrequest
peut également envoyer des en-têtes, il va envoyer une ligne vide dans le serveur pour indiquer la fin des en-têtes, de sorte que l'envoi des en-têtes par la suite permettra de créer une erreur.Sinon, vous pouvez le faire comme on le fait ici:
ce qui est mal, c'est que vous avez utilisé
request
au lieu deputrequest
, qui complète l'ensemble de la demande. Vous avez besoin d'ajouter des en-têtes avant de vous laisser à la demande de la traverser, etputrequest
.OriginalL'auteur sje397
headers = {"Content-Type":"application/x-www-form-urlencoded",
"Connexion":"Keep-Alive",
"Referer":"http://www.tu.sitio.cl/",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"};
code+
conn.demande(method="POST", url="/formulario/", corps=params, headers=en-têtes)
OriginalL'auteur Pablo Flores Aravena