如何使用python下的请求发出post文件请求?

2024-10-08 20:25:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我用multipart/form-data; boundary=a1c2469c-2a1f-48e6-8f1d-311f8650c855发了一个帖子请求,我得到了这个

POST /api/feed/upload-resource HTTP/1.1
App-Id: 15762288
Version-Name: 3.26.0.451
User-Agent: Right-Android/3.26.0.451
Content-Type: multipart/form-data; boundary=a1c2469c-2a1f-48e6-8f1d-311f8650c855
Content-Length: 75412
Connection: Keep-Alive
Accept-Encoding: gzip

--a1c2469c-2a1f-48e6-8f1d-311f8650c855
Content-Disposition: form-data; name="h"
Content-Length: 4

1080
--a1c2469c-2a1f-48e6-8f1d-311f8650c855
Content-Disposition: form-data; name="w"
Content-Length: 4

1080
--a1c2469c-2a1f-48e6-8f1d-311f8650c855
Content-Disposition: form-data; name="image"; filename="/storage/emulated/0/Android/data/com.xiaoyu.rightone/tiny/tiny-738-2018-08-03-15-32-53.jpg"
Content-Type: text/plain
Content-Length: 74910

如果我想使用Python请求包来模拟这个请求,我该怎么做呢

我已经检查了文档,并尝试使用如下文件参数

with open(path, 'rb') as f:
    files = {
        "h": "1495",
        "w": "840",
        "filename": ("image", f.read()),
    }
    r = requests.post(url, files=files)

然而,在我的情况下,我总是得到一个类似upload_resource_empty的错误


Tags: nameimageformdatatypefilescontentlength
1条回答
网友
1楼 · 发布于 2024-10-08 20:25:25

这应该起作用:

import requests

files = {
    'image': ('file_name.jpg', open('file.jpg', 'rb'), 'text/plain'),
    'w': (None, '123'),
    'h': (None, '222')
}

response = requests.post('url', files=files)

字典中的元组具有以下格式:('filename', fileobj, 'content_type', custom_headers)

相关问题 更多 >

    热门问题