龙空技术网

python【POST】发送multipart/form-data请求的简单方法

趣味乐高 69

前言:

眼前看官们对“python怎么post”大约比较重视,各位老铁们都需要剖析一些“python怎么post”的相关资讯。那么小编同时在网络上搜集了一些有关“python怎么post””的相关文章,希望咱们能喜欢,看官们快快来学习一下吧!

背景:

python利用request进行web接口的请求,有些业务使用表单请求的方式,比如:

一个POST请求,请求参数如下:

-----------------------------357328730621871081323612605784

Content-Disposition: form-data; name="incrementTime"

3

-----------------------------357328730621871081323612605784

Content-Disposition: form-data; name="studentTaskId"

1611243727122857985

-----------------------------357328730621871081323612605784--

对于这种不一样body请求体,直接使用post是无法完成的

解决方案:

1.头部header设置文本类型为

"Content-Type": "multipart/form-data; boundary=---------------------------XXXXX"

2.把请求的body进行字符串转换即可

比如上面示例

params = []params.append('-----------------------------{}'.format(guid))params.append('Content-Disposition: form-data; name="incrementTime"')params.append('')params.append('{}'.format(inctime))params.append('-----------------------------{}'.format(guid))params.append('Content-Disposition: form-data; name="studentTaskId"')params.append('')params.append('{}'.format(studentid))params.append('-----------------------------{}'.format(guid))body = '\r\n'.join(params)

最为关键的一步就是body= '\r\n'.join(params),这样列表最后都会添加上\r\n回车换行符,

3.直接使用request方法就可以了

resp = requests.post(url, headers=headers, body=body)

是不是很简单就解决了这个难题了,form-data,可以里面设置文件传输,图片,视频流等等,还是非常灵活方便的。好了,这期分享就到这里

标签: #python怎么post