requests 如何带证书上传文件

2014-07-08 16:58:35 +08:00
 Zuckonit
下面的语句如何在python 的 requests库里面实现
filename=/tmp/testfile
curl --cacert test.cert -X POST -F "hash=$hash_v" -F "filename=@$filename" "https://0.0.0.0:12345/upload/"

意思是通过POST方法, body有两个参数, 一个是hash, 一个文件
6473 次点击
所在节点    Python
4 条回复
keakon
2014-07-08 17:10:32 +08:00
yueyoum
2014-07-08 17:24:14 +08:00
request.post(url, cert="test.cert")
Zuckonit
2014-07-08 18:56:43 +08:00
@yueyoum 试了报错, @keakon给的link里面也没看到我这种场景的demo, curl可以。能把curl命令翻译成requests不(对了证书我自己生成的)
Zuckonit
2014-07-08 19:17:31 +08:00
google一番, 基本都不对, 拼凑测试几次后通过, 总结如下, 希望对遇到同样问题的人有帮助

filename = '/tmp/test.cert'
hash_v = 'assumethisisahash'
with open(filename, 'rb') as f:
....requests.post(link, data={'hash': hash_v}, files={'filename':f}, verify='/tmp/test.cert')

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/121575

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX