【问题标题】:Form data in pycurl requestpycurl请求中的表单数据
【发布时间】:2015-10-25 16:49:21
【问题描述】:

我想用 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选项后面的东西放到postfield?

我目前有:

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

【问题讨论】:

    标签: python rest post pycurl


    【解决方案1】:

    这是我对你的 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中没有,所以我下载了source并使用了tests/post_test.py

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-20
      • 2021-08-26
      • 2021-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      相关资源
      最近更新 更多