Curl and python httplib?

小学园PHP xxy-php at qq.com
Wed Mar 27 22:54:43 EDT 2013


Guys,

I take a project that need send request to Hadoop by curl.
But now, the curl and pycurl can't satisfy my project. So i need use the powerful httplib.
But failed.


my curl request:
curl -i -X PUT "http://localhost:50070/webhdfs/v1/levi/7?op=CREATE"


my return:
HTTP/1.1 307 TEMPORARY_REDIRECT
Content-Type: application/octet-stream
Location: http://58.53.211.47:50075/webhdfs/v1/levi/7?op=CREATE&overwrite=false
Content-Length: 0
Server: Jetty(6.1.26)



Now, i change the curl request to httplib:
import httplib
import urllib


params=urllib.urlencode({"@op":"CREATE","@user.name":"levi"})
headers={"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}
conn=httplib.HTTPConnection("localhost:50070")
conn.request("PUT","/webhdfs/v1/levi/7.txt",params,headers)
response=conn.getresponse()
print response.status, response.reason
data=response.read()

print data
conn.close()


But it failed:
#print response.status, response.reason
500 Internal Server Error
#print data
'{"RemoteException":{"exception":"WebApplicationException","javaClassName":"javax.ws.rs.WebApplicationException","message":null}}'


Who knows why? It's OK when i use curl, so where is the problem in httplib method?
Or some other reasons?
Who can help me change the curl request to httplib edition?


TIA
Levi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130328/07ec0bb1/attachment.html>


More information about the Python-list mailing list