问题描述
引用RFC 1341的7.2.1节,我认为是标头boundary参数的相关位Content-Type(对于MIME):
“ multipart”的所有子类型都具有相同的语法…
多部分实体的Content-Type字段需要一个参数“边界”,该参数用于指定封装边界。封装边界定义为一行,该行完全由两个连字符(“-”,十进制代码45)组成,后跟来自Content-Type标头字段的边界参数值。
然后澄清:
因此,典型的多部分Content-Type标头字段可能如下所示:
Content-Type: multipart/mixed; boundary=gc0p4Jq0M2Yt08jU534c0p
这表明该实体由几个部分组成,每个部分本身的结构与RFC 822消息在语法上相同,不同之处在于标头区域可能完全为空,并且每个部分前面都带有–gc0p4Jq0M2Yt08jU534c0p行
注意事项:
- 封装边界必须出现在行的开头,即,在CRLF(回车换行)之后
- 该边界必须紧随其后,或者是另一个CRLF和下一部分的标题字段,或者是两个CRLF,在这种情况下,下一部分没有标题字段(因此,假定其为Content-Type text /平原)。
- 封装边界不能出现在封装中,并且长度不能超过70个字符,这不包括两个前导连字符。 最后但并非最不重要的:
最后一个主体部分之后的封装边界是一个显着的定界符,指示不再跟随其他主体部分。这样的定界符与之前的定界符相同,在行的末尾添加了另外两个连字符:
--gc0p4Jq0M2Yt08jU534c0p--
我希望这对以后的其他人有所帮助,因为在获取全貌之前我必须漫游一段时间(请确保阅读必要的RFC以获得最深刻的理解)。
解决方法
我正在尝试开发一个侧边栏小工具,该工具可以自动检查网页中我的转让配额的演变过程。我快要解决了,但是我需要做的最后一步是:将带有正确POST数据的HttpRequest发送到php页面。使用firefox插件,标题的“ Content-Type”如下所示:
Content-Type=multipart/form-data; boundary=---------------------------99614912995
参数“边界”似乎是随机的,而POSTDATA是这样的:
POSTDATA =-----------------------------99614912995
Content-Disposition: form-data; name="SOMENAME"
Formulaire de Quota
-----------------------------99614912995
Content-Disposition: form-data; name="OTHERNAME"
SOMEDATA
-----------------------------99614912995--
我不明白如何使用神秘的“边界”参数返回来正确模拟POSTDATA。
有人知道我该怎么解决吗?