Python requests库GET请求使用files参数相关问题咨询
相关问题解答
为什么GET请求可以发送非查询类型的数据
HTTP官方规范从来没有禁止GET请求携带请求体,只是常规使用习惯里,大家都会把GET的参数放在URL后面的查询字符串里传递,大多数服务器、中间件默认也只会优先处理GET的查询参数,这就导致很多人误以为GET不能带请求体。
requests作为通用的HTTP客户端工具,没有人为限制这个用法,允许你给GET传入请求体内容,只要目标服务端做了适配、能解析GET请求的请求体,这种用法就能正常跑通。
小提示:部分网络代理、WAF安全策略会直接丢弃GET请求的请求体,这种场景下该用法会失效,要不要这么用完全看目标服务的支持情况。
GET请求里files参数的作用是什么
不管是GET还是POST/PUT这类请求,requests的files参数作用都是统一的:
- 自动给请求头加上
Content-Type: multipart/form-data标识 - 把你传入的
multipart_form_data内容按照multipart表单的编码规则处理后,放到请求体里
你这段代码本质就是简化了手动构造multipart格式请求体的操作,你完全可以自己编码好multipart内容后传给GET请求的data参数,效果是完全一样的。
你贴的代码中文注释如下:
# 向地址check_all_info_url_2发送GET请求,携带multipart表单格式数据,请求超时时间设为30秒 response = requests.get( check_all_info_url_2, files=multipart_form_data, timeout=30)
内容的提问来源于stack exchange,提问作者Abdelrahman Akram
相关产品推荐
相关产品推荐

