2016-05-09 2 views
0

Я пытаюсь использовать curl в python с параметром url, но он возвращает «None», тот же api с тем же параметром в php работает нормально. Вот мой питон код:Отправка данных URL Curl/Json в Python

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', который имеет хороший API для выполнения HTTP-запросов: HTTP: //docs.python-requests. орг/о/ведущий / –

ответ

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() 
Смежные вопросы