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)""".

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to