To Do List

list,string,tuple,dictionary之间的转换
https://blog.csdn.net/YQ1228/article/details/78542035

 

https://www.cnblogs.com/yigui/p/9500575.html
robotFrameWork

 


https://www.cnblogs.com/yigui/p/9218035.html
Appium中的校验

https://www.cnblogs.com/yigui/p/7651918.html
XML工具读取

 

 

 

multipart/form-data 文件上传表单中 传递参数无法获取的原因!


1.什么是multipart/form-data
首先我们需要明白在html中的enctype属性,
enctype:规定了form表单在发送到服务器时候编码方式。他有如下的三个值。

①application/x-www-form-urlencoded。默认的编码方式。
但是在用文本的传输和MP3等大型文件的时候,使用这种编码就显得 效率低下。
②multipart/form-data 。
指定传输数据为二进制类型,比如图片、mp3、文件。
③text/plain。
纯文体的传输。
空格转换为 “+” 加号,但不对特殊字符编码。

 

2.明确在enctype参数为application/x-www-form-urlencoded的时候post和get请求参数和请求体是什么形式的
get请求
请求头:GET /www.xxx.com?name=%22hello+world%22&**file=temp.png**&submit=submit HTTP/1.1
因为get请求没有请求体,所有他的所有参数都是在url的后边添加。type=file的表单项只能获取到文件的名字,并不能获取文件的内容。


post请求
请求头:
POST /www.baidu.com HTTP/1.1
请求体:
name=%22hello+world%22&file=temp.png&submit=submit

总结
(1)我们可以发现不管是post请求和get请求,他们的参数存在的形式都是不变的,通过key=value的形式存在。
(2)表单项type=filed只能获取获取文件的名字不能获取文件的内容。

 

3. 明确在enctype参数为multipart/form-data的时候post和get请求参数和请求体是什么形式的
get请求
请求头:
GET/www.xxx.com?name=%22hello+world%22&file=temp.png&submit=submit HTTP/1.1
get请求
get请求和multipart/form-data结合无效,因为文件上传需要请求体。

post请求:
请求头:
POST /www.xxx.com HTTP/1.1
请求体:
------WebKitFormBoundaryIZDrYHwuf2VJdpHw
Content-Disposition: form-data; name="name"

"hello world"
------WebKitFormBoundaryIZDrYHwuf2VJdpHw
Content-Disposition: form-data; name="file"; filename="temp.png"
Content-Type: image/png

.PNG
.
...
IHDR...
..........Y../..,+|.$aIk.v...G?...P.P,,...m..e.2....v.7. pHYs...%...%.IR$....|IDAT(.cTT....................:.?.......}.(.Pd`A..V...L...?..#.....4.o..LS.....W.d.?...A8..LS...(.u.......D.b......b.....o&..;..<.1......IEND.B`.
------WebKitFormBoundaryIZDrYHwuf2VJdpHw
Content-Disposition: form-data; name="submit"

submit
------WebKitFormBoundaryIZDrYHwuf2VJdpHw--


通过观察发现这个的请求体就发生了变化。这种请求体被称之为多部件请求体。
什么是多部件请求体:就是把每一个表单项分割为一个部件。
因为表单项分为普通表单项和文件表单项,所以说部件也有区别。

普通表单项:
一个请求头:Content-Disposition: form-data; name=”name”
一个请求体:里面就是我们表单的值”hello world”

文件表单项:
两个请求头:

Content-Disposition: form-data; name="file"; filename="temp.png"
Content-Type: image/png

 

posted @ 2020-06-03 15:38  巴黎爱工作  阅读(233)  评论(0编辑  收藏  举报