zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    url分发(二级分发)
    图片的渲染
    自定义admin(self_admin)
    类的方法
    orm分组,聚合查询,执行原生sql语句
    jQuery 插件 jQuery UI的使用
    Spring security 在项目中的使用第二篇之代码实现阶段
    Hibernate 学习笔记第一篇
    Hibernate 学习笔记第三篇
    MySQL 常用命令
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/13037912.html
Copyright © 2011-2022 走看看