HTTP post with urllib2
cerr
ron.eggler at gmail.com
Wed Aug 7 12:20:58 EDT 2013
On Tuesday, August 6, 2013 5:14:48 PM UTC-7, MRAB wrote:
> On 06/08/2013 23:52, cerr wrote:
>
> > Hi,
>
> >
>
> > Why does this code:
>
> >
>
> > #!/usr/bin/python
>
> >
>
> >
>
> > import urllib2
>
> > from binascii import hexlify, unhexlify
>
> >
>
> > host = "localhost"
>
> > uri="/test.php"
>
> > data ="\x48\x65\x6C\x6C\x6F\x57\x6F\x72\x6C\x64" #Hello World
>
> > url="http://{0}{1}?f=test".format(host, uri)
>
> > req = urllib2.Request(url, data,{'Content-Type': 'application/octet-stream'})
>
> > req.get_method = lambda: 'PUT'
>
> > response = urllib2.urlopen(req, 120)
>
> > retval = response.read()
>
> > print "RETVAL "+retval
>
> >
>
> >
>
> >
>
> > return me this:
>
> >
>
> > ./post.py
>
> > Traceback (most recent call last):
>
> > File "./post.py", line 13, in <module>
>
> > response = urllib2.urlopen(req, 120)
>
> > File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
>
> > return _opener.open(url, data, timeout)
>
> > File "/usr/lib/python2.7/urllib2.py", line 398, in open
>
> > req = meth(req)
>
> > File "/usr/lib/python2.7/urllib2.py", line 1116, in do_request_
>
> > 'Content-length', '%d' % len(data))
>
> >
>
> >
>
> > I don't get it, what's going on here?
>
> >
>
> The docs say """urllib2.urlopen(url[, data][, timeout])""".
>
>
>
> You're calling it as """urllib2.urlopen(req, 120)""".
>
>
>
> In other words, 'url' is req and 'data' is 120.
>
>
>
> It should be """urllib2.urlopen(req, None, 120)""".
Yes, great! That did it! :)
Coming into the office in the morning, sitting down, changing this and get it working! Good way to start my day! :)
Thanks MRAB!
More information about the Python-list
mailing list