Я пытаюсь преобразовать следующий запрос curl в pycurl:
curl -v
-H Accept:application/json \
-H Content-Type:application/json \
-d "{
name: 'abc',
path: 'def',
target: [ 'ghi' ]
}" \
-X POST http://some-url
У меня есть следующий код Python:
import pycurl, json
c = pycurl.Curl()
c.setopt(pycurl.URL, 'http://some-url')
c.setopt(pycurl.HTTPHEADER, ['Accept: application/json'])
data = json.dumps({"name": "abc", "path": "def", "target": "ghi"})
c.setopt(pycurl.POST, 1)
c.setopt(pycurl.POSTFIELDS, data)
c.setopt(pycurl.VERBOSE, 1)
c.perform()
print curl_agent.getinfo(pycurl.RESPONSE_CODE)
c.close()
При выполнении этого у меня возникла ошибка 415: неподдерживаемый тип носителя, поэтому я изменил:
c.setopt(pycurl.HTTPHEADER, ['Accept: application/json'])
в:
c.setopt(pycurl.HTTPHEADER, [ 'Content-Type: application/json' , 'Accept: application/json'])
На этот раз у меня 400: Плохой запрос. Но код bash с завитком работает. У вас есть идеи, что я должен исправить в коде Python?