post表单数据格式multipart/form-data 解析

post表单数据格式完全解析multipart/form-data

参数说明

内容

boundary

boundary一个字符串,用以分隔不同的参数;

string boundary = Guid.NewGuid().ToString();

会生成如下字符串:9470b619-f08f-436e-a6b2-98fcb02b695b

也可以自定义一个比较复杂的字符串作为分隔符,例如@adsadsadsads123456789@

request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;

--boundary开始分隔符,也就是boundary之前加两个短划线,用以标记每一条数据的起始位置;

--boundary--结束分隔符,也就是boundary之前和之后各加两个短划线,用以标记所有数据的结束位置;

\r\n

换行符\r\n,用以标记分隔符和参数声明之间、各参数声明之间、参数声明和参数值之间、参数值和下一条数据之间的分隔位置;

boundary和数据声明之间有且只有1个换行符;

各条数据声明之间有且只有1个换行符;

数据声明和数据值之间有且只有2个换行符;

数据值和下一条数据之间有且只有1个换行符;

其他参数

CContent-Type:text/plain;charset=utf-8表示数据内容的格式为普通文本,编码格式为utf-8;

Content-Disposition:form-data表示内容的处置方式,表示将内容作为formdata格式进行处理;

name=\"sInputF\"表示传递参数的名称,或者叫键值、或者字段名称;

所有数据,无论是文本数据还是文件流数据,最终都以byte[]的格式进行传输;

示例

--boundary //第一条数据

数据声明1

数据声明2

数据

--boundary//第二条数据

数据声明1

数据声明2

数据

...

--boundary--//数据结束

结构详解

参数

项目

内容

开始

换行符

第一个开始分隔符前可以没有换行符\r\n

参数1

sInputF

文件参数

开始分隔符

"--" + boundary

换行符

有且只有1个换行符\r\n

数据声明1:

Content-Disposition:form-data;name=\"sInputF\";filename=\"{Path.GetFileName(mDocPath)}\"

换行符

有且只有1个换行符\r\n

数据声明2:

Content-Type:application/octet-stream

换行符

声明和数据值之间,有且只有2个换行符\r\n\r\n

数据值

byte[] docFileBytes = ReadFileBytes(mDocPath);

换行符

有且只有1个换行符\r\n

参数2

sSealF

文件参数

开始分隔符

"--" + boundary

换行符

有且只有1个换行符\r\n

数据声明1:

Content-Disposition:form-data;name=\"sSealF\";filename=\"{Path.GetFileName(mSealPath)}\"

换行符

有且只有1个换行符\r\n

数据声明2:

Content-Type:application/octet-stream

换行符

声明和数据值之间,有且只有2个换行符\r\n\r\n

数据值

byte[] sealFileBytes = ReadFileBytes(mSealPath);

换行符

有且只有1个换行符\r\n

参数3

sPageNum

文本参数

开始分隔符

"--" + boundary

换行符

有且只有1个换行符\r\n

数据声明1:

CContent-Type:text/plain;charset=utf-8

换行符

有且只有1个换行符\r\n

数据声明2:

Content-Disposition:form-data;name=\"sPageNum\"

换行符

声明和数据值之间,有且只有2个换行符\r\n\r\n

数据值

1

换行符

有且只有1个换行符\r\n

参数4

fSealW

文本参数

开始分隔符

"--" + boundary

换行符

有且只有1个换行符\r\n

数据声明1:

CContent-Type:text/plain;charset=utf-8

换行符

有且只有1个换行符\r\n

数据声明2:

Content-Disposition:form-data;name=\"fSealW\"

换行符

声明和数据值之间,有且只有2个换行符\r\n\r\n

数据值

100

换行符

有且只有1个换行符\r\n

参数5

fSealH

文本参数

开始分隔符

"--" + boundary

换行符

有且只有1个换行符\r\n

数据声明1:

CContent-Type:text/plain;charset=utf-8

换行符

有且只有1个换行符\r\n

数据声明2:

Content-Disposition:form-data;name=\"fSealH\"

换行符

声明和数据值之间,有且只有2个换行符\r\n\r\n

数据值

1

换行符

有且只有1个换行符\r\n

参数6

fSealPosX

文本参数

开始分隔符

"--" + boundary

换行符

有且只有1个换行符\r\n

数据声明1:

CContent-Type:text/plain;charset=utf-8

换行符

有且只有1个换行符\r\n

数据声明2:

Content-Disposition:form-data;name=\"fSealPosX\"

换行符

声明和数据值之间,有且只有2个换行符\r\n\r\n

数据值

1

换行符

有且只有1个换行符\r\n

参数7

fSealPosY

文本参数

开始分隔符

"--" + boundary

换行符

有且只有1个换行符\r\n

数据声明1:

CContent-Type:text/plain;charset=utf-8

换行符

有且只有1个换行符\r\n

数据声明2:

Content-Disposition:form-data;name=\"fSealPosY\"

换行符

声明和数据值之间,有且只有2个换行符\r\n\r\n

数据值

1

换行符

有且只有1个换行符\r\n

结束

结束分隔符

"--" + boundary "--",结束分隔符之后可以没有换行符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Murphy2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值