繁体   English   中英

如何将 curl 示例转换为 Pycurl

[英]how to convert curl example to Pycurl

PS - 不,我不会使用 python 请求,因为它无助于创建文件的可读流。

curl -i -H "Authorization":"eyJhbGciOiJIUzI1NiIsImV4cCI6MTQyNjcwNTY4NiwiaWF0IjoxNDI2NzAyMDg2fQ.eyJpZCI6MTc3fQ.yBwLFez2RnxTojLniL8YLItWVvBb90HF_yfhcsyg3lY" \
    -F user_data='{"user data": {"preferred_city":"Newyork","within_radious":"5"}}' \
    -F uploaded_documents=@mydocument.pdf \
    http://127.0.0.1:5000/api/city

我正在尝试以 pycurl post 方法发送文件和 json 数据。
我仅成功发送文件。
我发现上面的示例可以在相同的 api 中发送文件和数据,但无法正确将其转换为 pycurl systax。
任何人都可以将其转换为 pycurl 类型的代码工作吗?

这对你有用

import pycurl
c = pycurl.Curl()      
c.setopt(pycurl.URL, "http://127.0.0.1:5000/api/city")
c.setopt(c.POST, 1)
c.setopt(pycurl.HTTPHEADER, ['Authorization: "eyJhbGciOiJIUzI1NiIsImV4cCI6MTQyNjcwNTY4NiwiaWF0IjoxNDI2NzAyMDg2fQ.eyJpZCI6MTc3fQ.yBwLFez2RnxTojLniL8YLItWVvBb90HF_yfhcsyg3lY"'])
data = json.dumps({"user data": {"preferred_city":"Newyork","within_radious":"5"}})
c.setopt(pycurl.POSTFIELDS,data)
c.setopt(c.HTTPPOST, [("uploaded_documents", (c.FORM_FILE, "mydocument.pdf"))])
c.perform()
c.close()

你可以试试这个 package - http_pycurl

它公开的 API 与请求类似。

如何安装

pip install http_pycurl

具体用法在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM