Form data in pycurl request

I would like to make the following curl request with pycurl:

curl -v \ -H Accept:application/json \ -F "model={ name: 'zxy', targets: [ 'abc'] }" \ -F " deployment=@ /deployments/MyApp.ear" \ -X POST https://abc.cde 

How to put postfield objects that follow -F options?

I have:

 c = pycurl.Curl() c.setopt(pycurl.URL, "https://abc.cde") c.setopt(pycurl.HTTPHEADER, ['Accept:application/json']) c.setopt(pycurl.POST, 1) # set postfield somehow 
+4
source share
1 answer

This is my conversion of your curl script.

 #!/usr/bin/python import os, sys, pycurl model = """{ name: 'zxy', targets: [ 'abc'] }""" path = '/deployments/MyApp.ear' c = pycurl.Curl() c.setopt(pycurl.URL, 'https://abc.cde') c.setopt(pycurl.HTTPHEADER, ['Accept:application/json']) send = [("model", model), ('deployment', (pycurl.FORM_FILE, path)),] c.setopt(pycurl.HTTPPOST, send) #c.setopt(pycurl.VERBOSE, 1) c.perform() print c.getinfo(pycurl.RESPONSE_CODE) c.close() 

It is not easy to find pycurl examples on forms. Not in the doc , so I downloaded the source and tests/post_test.py .

+5
source

All Articles