边界标记是否可以位于前一个字段数据的末尾?请注意,为简洁起见,我已删除了大部分XML数据。有问题的边界标记是紧跟在XML的结束标记之后的边界标记 - 在那里有边界标记是否有效,或者它应该在下一行自身?
Connection: Keep-Alive
Content-Length: 5466
Content-Type: multipart/form-data; boundary=----------9042941111365854226
------------9042941111365854226
Content-Disposition: form-data; name="xml"
<?xml version="1.0" encoding="ISO-8859-1"?><srvhandle>...</srvhandle>------------9042941111365854226
Content-Disposition: form-data; name="objname"
auditevent
------------9042941111365854226--
答案 0 :(得分:2)
不,就我所知,它无效。
身体部位之间的界限必须以CRLF
对开头。在这种情况下,您错过了CRLF
中的encapsulation
。 (见下文)。您还错过标记外部标题结尾的额外CRLF
(即空行)。
(Multipart / form-data遵循MIME数据规则)
根据RFC 2046,这是多部分消息体结构的摘录。(BNF语法略有简化。)
multipart-body := [preamble CRLF] dash-boundary CRLF body-part *encapsulation close-delimiter [CRLF epilogue] dash-boundary := "--" boundary body-part := MIME-part-headers [CRLF *OCTET] encapsulation := delimiter CRLF body-part delimiter := CRLF dash-boundary close-delimiter := delimiter "--"
答案 1 :(得分:2)
不,它无效。 MIME边界始终以CRLF
开头。您在前两个边界前面缺少CRLF
,但在最后一个边界上没有。它需要看起来像这样:
Connection: Keep-Alive
Content-Length: 5466
Content-Type: multipart/form-data; boundary=----------9042941111365854226
------------9042941111365854226
Content-Disposition: form-data; name="xml"
<?xml version="1.0" encoding="ISO-8859-1"?><srvhandle>...</srvhandle>
------------9042941111365854226
Content-Disposition: form-data; name="objname"
auditevent
------------9042941111365854226--