在pycurl请求中表单数据(Form data in pycurl request)
我想用pycurl进行以下curl请求:
curl -v \ -H Accept:application/json \ -F "model={ name: 'zxy', targets: [ 'abc'] }" \ -F "deployment=@/deployments/MyApp.ear" \ -X POST https://abc.cde如何把后面的-F选项放到后场?
我目前:
c = pycurl.Curl() c.setopt(pycurl.URL, "https://abc.cde") c.setopt(pycurl.HTTPHEADER, ['Accept:application/json']) c.setopt(pycurl.POST, 1) # set postfield somehowI would like to make 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.cdeHow to put to the postfield things that follow -F options?
I have currently:
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最满意答案
这是我对你的curl脚本的转换。
#!/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()在表格上找到pycurl的例子并不容易。 在doc中没有,所以我下载了源代码并使用了tests/post_test.py 。
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's not easy finding examples of pycurl on forms. None in the doc, so I downloaded the source and used tests/post_test.py.
更多推荐
发布评论