企业应用中会经常用到基于Http的文件上传,其中Multipart是多文件上传所使用的,在用JAVA开发时有时会用第三方类库来拼HTTP报文,有时则手动组装,
然后手动组装前先要了解一下报文的格式,如下是HTTP的报文头:
POST /test/upload HTTP/1.1
Content-Type: multipart/form-data;boundary=0xKhTmLbOuNdArY-35123DE7-B577-4495-AA1E-092BB0CCFC64
charset: utf-8
Content-Length: 19520216
Host: 10.19.220.234:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.2.5 (java 1.5)
重点是:
Content-Type: multipart/form-data;boundary=0xKhTmLbOuNdArY-35123DE7-B577-4495-AA1E-092BB0CCFC64
其中Content-Type决定了报文的类型,boundary则用于分隔各条目项。
示例如下:
--0xKhTmLbOuNdArY-35123DE7-B577-4495-AA1E-092BB0CCFC64
Content-Disposition: form-data; name="messageId"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
1395271935
--0xKhTmLbOuNdArY-35123DE7-B577-4495-AA1E-092BB0CCFC64
Content-Disposition: