那么Http協(xié)議中的Multipart是個(gè)什么東東?下面是摘抄h(huán)ttp協(xié)議1.1的一段話:
在multipart entity(多部分實(shí)體)的例子中,一個(gè)或多個(gè)不同的數(shù)據(jù)集合并在一個(gè)單一的body(體)中,一個(gè)"multipart"(多部分)類型 field的(域)必須出現(xiàn)在實(shí)體的header(頭域)。body(體)必須包括一個(gè)或多個(gè)body part(體部分),每一個(gè)位于boundary(邊界)定界符線之前,最后一個(gè)則跟著一個(gè)結(jié)束邊界定界符線。在它的邊界定界符線后,每一個(gè)體部分由頭域、空行、體組成。
上面的描述寫的有點(diǎn)拗口,簡單的理解可以為:一個(gè)post的請(qǐng)求,可以根據(jù)一定規(guī)范去定義多個(gè)部分;
下面用移動(dòng)網(wǎng)狀網(wǎng)協(xié)議(其實(shí)就是一個(gè)請(qǐng)求中包括2個(gè)獨(dú)立的xml內(nèi)容,一個(gè)head的xml,一個(gè)body的xml)去舉例說明如何利用Jersey處理Multipart,主要代碼如下(開始的時(shí)候server端接收的代碼死活不知道如何寫也沒查到別人怎么寫的,后來一生氣,反編譯jersey-multipart-1.0.3.1.jar包的代碼看了下,才明白):
<?xml version="1.0" encoding="UTF-8"?>
<InterBOSS>
<Version>0100</Version>
<TestFlag>0</TestFlag>
<BIPType>
<BIPCode>BIP2B543</BIPCode>
<ActivityCode>T2001543</ActivityCode>
<ActionCode>0</ActionCode>
</BIPType>
<RoutingInfo>
<OrigDomain>IMPS</OrigDomain>
<RouteType>01</RouteType>
<Routing>
<HomeDomain>BOSS</HomeDomain>
<RouteValue>13810494631</RouteValue>
</Routing>
</RoutingInfo>
<TransInfo>
<SessionID>2013050815143783928824</SessionID>
<TransIDO>2013050815143783928824</TransIDO>
<TransIDOTime>20130508151437</TransIDOTime>
</TransInfo>
</InterBOSS>
--Boundary_1_30911772_1367997277472
Content-Disposition: form-data;name="xmlbody"
Content-Type: multipart/form-data
<?xml version="1.0" encoding="UTF-8"?>
<InterBOSS>
<SvcCont><![CDATA[<subscribeServiceReq>
<msgTransactionID>210001BIP2B543130508151437477294</msgTransactionID>
<subscribeServInfo>
<oprTime>20130508151436</oprTime>
<actionID>06</actionID>
<effTime>20130508151437</effTime>
<expireTime>30000101000000</expireTime>
<feeUser_ID>13810494631</feeUser_ID>
<destUser_ID>13810494631</destUser_ID>
<actionReasonID>1</actionReasonID>
<servType>210001</servType>
<subServType>FXCJHY</subServType>
<SPID>901508</SPID>
<SPServID>FXCJHY</SPServID>
<accessMode>01</accessMode>
<feeType>2</feeType>
</subscribeServInfo>
</subscribeServiceReq>]]></SvcCont>
</InterBOSS>
--Boundary_1_30911772_1367997277472--
新聞熱點(diǎn)
疑難解答
圖片精選