2016-05-09 117 views
0

我想在url中使用curl与url参数,但它返回“无”,相同的API与PHP中的相同参数它工作正常。 这里是我的Python代码:在Python中发送URL数据Curl/Json

from StringIO import StringIO 
import pycurl, json 

apiurl = 'http://servername.com:7705' 

data = json.dumps({"node": "test", "type": "get_by_field"}) 

c = pycurl.Curl() 
c.setopt(pycurl.URL, apiurl) 
c.setopt(pycurl.HTTPHEADER, ['Accept: application/json']) 
c.setopt(pycurl.POST, 1) 
c.setopt(pycurl.POSTFIELDS, data) 
response = c.perform() 
c.close() 
print response 
+0

我建议你看看'Requests'这对于执行HTTP请求良好的API:HTTP://docs.python-requests。组织/ EN /主/ –

回答

2

试试这个

import StringIO 
import pycurl, json 

fout = StringIO.StringIO() 

apiurl = 'http://servername.com:7705' 

data = json.dumps({"node": "test", "type": "get_by_field"}) 

c = pycurl.Curl() 
c.setopt(pycurl.WRITEFUNCTION, fout.write) 

c.setopt(pycurl.URL, apiurl) 
c.setopt(pycurl.HTTPHEADER, ['Accept: application/json']) 
c.setopt(pycurl.POST, 1) 
c.setopt(pycurl.POSTFIELDS, data) 
c.perform() 
c.getinfo(pycurl.RESPONSE_CODE) 
fout.getvalue()