关于POST提交参数格式

东莞小甜甜 2016-10-24 08:47:03
这是一个POST文件(图片、txt、doc、、、、、)的格式(无关紧要的头去掉了):


Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryNSF3vGLxKBlk5kcB
Referer: http://localhost:44187/UploadDemo.aspx
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8


------WebKitFormBoundaryNSF3vGLxKBlk5kcB
Content-Disposition: form-data; name="userName"

admin
------WebKitFormBoundaryNSF3vGLxKBlk5kcB
Content-Disposition: form-data; name="userPwd"

123456
------WebKitFormBoundaryNSF3vGLxKBlk5kcB
Content-Disposition: form-data; name="photo"; filename="1.png"
Content-Type: image/png

<!--这一行是文件二进制数据-->
------WebKitFormBoundaryNSF3vGLxKBlk5kcB--




问题:请问post参数时可以采用上面的格式吗?(我知道可以?Name=value&Name2=Vlue2可以这样post。但是我的问题是可以采用上面的post提交格式吗?)
...全文
1717 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
东莞小甜甜 2016-10-25
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
这本来就是一种常用的 post 参数形式,是符合 rfc2183、rfc2898 协议的。
引用 4 楼 Chinajiyong 的回复:
是可以的,multipart/form-data;

假设服务器段提供的是如下的HTML:

     <FORM ACTION="http://server.dom/cgi/handle"
           ENCTYPE="multipart/form-data"
           METHOD=POST>
     What is your name? <INPUT TYPE=TEXT NAME=submitter>
     What files are you sending? <INPUT TYPE=FILE NAME=pics>
     </FORM>

用户在“姓名”字段里面填写"Joe Blow",对问题'What files are you sending?',用户选择
了一个文本文件"file1.txt"。

客户段可能发送回如下的数据:

        Content-type: multipart/form-data, boundary=AaB03x

        --AaB03x
        content-disposition: form-data; name="field1"

        Joe Blow
        --AaB03x
        content-disposition: form-data; name="pics"; filename="file1.txt"
        Content-Type: text/plain

         ... file1.txt 的内容...
        --AaB03x--

如果用户同时还选择了另一个图片文件"file2.gif",那么客户端可能发送的数据将是:

        Content-type: multipart/form-data, boundary=AaB03x

        --AaB03x
        content-disposition: form-data; name="field1"

        Joe Blow
        --AaB03x
        content-disposition: form-data; name="pics"
        Content-type: multipart/mixed, boundary=BbC04y

        --BbC04y
        Content-disposition: attachment; filename="file1.txt"

        Content-Type: text/plain

        ... file1.txt 的内容...
        --BbC04y
        Content-disposition: attachment; filename="file2.gif"
        Content-type: image/gif
        Content-Transfer-Encoding: binary

          ... file2.gif的内容...
        --BbC04y--
        --AaB03x--
请问下。这个boundary明明刚开始定义了是AaB03x,怎么后来又再重新定义了BbC04y了呢?
EnForGrass 2016-10-25
  • 打赏
  • 举报
回复
是可以的,multipart/form-data;
  • 打赏
  • 举报
回复
当你提交信息时,只要 Request 的 ContentType 信息中包括 multipart/form-data 说明,就是说明需要用这种参数形式。 如果你的服务器端采用 asp.net 编写,那么它天然支持 multipart/form-data。如果你的服务器端是自己使用 HttpListener 开发的轻量级的自定义 Web 服务器(例如嵌入桌面程序、windows service 等应用中),你需要自己写上几十行 c# 代码,对于 multipart/form-data 格式,将 Request 信息中的消息体的内容解析为一个个参数。
  • 打赏
  • 举报
回复
这本来就是一种常用的 post 参数形式,是符合 rfc2183、rfc2898 协议的。
东莞小甜甜 2016-10-25
  • 打赏
  • 举报
回复
难道都没人知道吗

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧