Python request 上传文件

发布于 2022-09-04 12:55:32 字数 934 浏览 15 评论 0

我尝试用 curl 提交成功

curl --form file=@/home/test/sample.png --form username=test@noreply.com --form password=test --insecure --form lang[0]=cn --form lang[1]=jp --form langs[2]=en https://www.example.com/api

但我用 requests 尝试了以下方法,却得不到正确结果。请问正确的应该怎么写?

data = {
    'file': open('/home/test/test.png','rb'),
    'username': 'test@noreply.com',
    'password': 'test',
    'lang[0]': 'cn',
    'lang[1]': 'jp',
    'lang[2]': 'en'
}
r = requests.post('https://www.example.com/api', data=data, verify=False)
file = {
    'file': open('/home/test/test.png','rb')
    }
data = {
    'username': 'test@noreply.com',
    'password': 'test',
    'lang[0]': 'cn',
    'lang[1]': 'jp',
    'lang[2]': 'en'
}
r = requests.post('https://www.example.com/api', data=data, files=file, verify=False)

另外我用 httpbin 测试,curl代码 和 第二段代码发出的请求是一样的,但是 Python 得不到返回的 ID.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

┾廆蒐ゝ 2022-09-11 12:55:32
files = {'file': open('test.png', 'rb')}
requests.post(url, files=files)

参考
http://www.python-requests.or...

http://www.python-requests.or...

裂开嘴轻声笑有多痛 2022-09-11 12:55:32
with open('filename1', 'rb') as f1, open('filename2', 'rb') as f2:
    files_to_upload = {
        'filename1': f1,
        'filename2': f2,
    }
    
    response = requests.post(url, files=files_to_upload)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文