http post form-data时content解析
Posted lee88688
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http post form-data时content解析相关的知识,希望对你有一定的参考价值。
上传文件表单的时候http协议过程
首先在浏览器中采用表单的形式上传文件代码如下
<form action="/api/uploads" method="POST" enctype="multipart/form-data">
<div class="form-group">
<input type="file" class="form-control-file" name="file">
<input type="submit" value="Upload">
</div>
</form>
由于在http协议中的规定,enctype必须是multipart/form-data,而在file input中的name后续会变为上传的参数,上传的文件名为model.py下面展示在firefox中的请求消息头
post的内容如下
boundary是用于分割post内容不同文件部分,在内容中我们看到Content-Disposition后面参数中有name以及filename这两个参数就是在input中选择的填写参数,俄日在Content-Type后面就是文件内容。如下图所示分隔符可以分割出不同部分。在flask的request中将参数包裹在其中,传递的所有文件都在request.files中,可以通过request.files[name]来选择不同的file,也可以通过request.files.items()获取一个迭代器。
表单内容存在文件以及其它数据时post content的内容与上图相似,首先我们来看下面代码
<form action="/api/uploads" method="POST" enctype="multipart/form-data">
<div class="form-group">
<input type="file" class="form-control-file" name="file">
<input type="text" name="t1">
<input type="text" name="t2">
<input type="submit" value="Upload">
</div>
</form>
在post content中内容如下
表单的每个字段都被单独分割开,在flask的request中form存储了这些name与内容,但文件并不在form中存储,而在request.files中存储。
以上是关于http post form-data时content解析的主要内容,如果未能解决你的问题,请参考以下文章
IONIC HTTP post multipart/form-data - 图像与 JSON 一起上传
使用 RestSharp 发送 HTTP POST Multipart/form-data 字段
文件上传 API:Multipart/form-data 与正文中的原始内容?
在android中使用Http Post发送Form-data Post请求