2016-05-09 178 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()