views:

791

answers:

2

I want to send a custom "Accept" header in my request when using urllib2.urlopen(..). How do I do that?

+1  A: 

Ok, nevermind, found the answer myself pretty quickly :)

import urllib2
contents = urllib2.Request("http://www.google.com", headers={"Accept" : "text/html"}).Read()
+8  A: 

Not quite. Creating a Request object does not actually send the request, and Request objects have no Read() method. (Also: read() is lowercase.) All you need to do is pass the Request as the first argument to urlopen() and that will give you your response.

import urllib2
request = urllib2.Request("http://www.google.com", headers={"Accept" : "text/html"})
contents = urllib2.urlopen(request).read()
pantsgolem