1. 概述
本教程我們將描述如何使用httpclient 4進行一次多檔案上傳操作.
我們將使用 作為測試伺服器,因為它是面向公眾的,並且接受大多數型別的內容.
如果你想要深入學習並了解你可以使用 httpclient 做到的其它很棒的事情 – 那就去看看首要的 httpclient 教程吧 .
2. 使用 addpart 方法
讓我們開始研究研究 multipartentitybuilder 物件,來向乙個http實體新增成分,它在稍後將會被通過乙個post操作上傳.
這是向乙個httpentity新增成分來表示表單的一般方法.
示例 2.1. - 使用兩個文字成分和乙個檔案上傳乙個表單
請注意我們也通過制定將會被伺服器使用到的contenttype值來例項化file物件.
同樣還請注意 addpart 方法有兩個引數,作用就像是表單的鍵值對 . 除非伺服器端實際需要這些值並使用了這些引數名稱,它們就是有干係的,否則它們就會被簡單的忽略掉.
leoxu
leoxu
翻譯於 1年前
0人頂頂 翻譯的不錯哦!
3. 使用 addbinarybody 和 addtextbody 方法
建立乙個multipart實體更直接的方式就是使用 addbinarybody 和 addtextbody 方法. 這些方法服務於上傳文字,檔案,字元陣列和 inputstream 物件. 我們用了乙個簡單的例子來描述如何使用它們 .
示例 3.1. - 上傳乙個文字和乙個文字檔案部分
注意這裡不需要 filebody 和 stringbody 物件
同樣重要的是,大多數伺服器不會檢查文字體的 contenttype , 因此 addtextbody 方法可能會忽略掉 contenttype 值 .
addbinarybody 的 api 接受乙個 contenttype - 但是它也有可能從乙個二進位制體來建立實體,而對應名稱的表單引數持有了這個檔案. 如前面小節所述,如果contenttype值沒有被指定,一些伺服器將不會識別這個檔案.
leoxu
leoxu
翻譯於 1年前
0人頂頂 翻譯的不錯哦!
接下來,我們將乙個zip檔案作為乙個 inputstream 新增進來, 而檔案將會被作為file物件被新增進來:
示例 3.2. - 上傳乙個zip檔案,乙個檔案和乙個文字塊
請注意contenttype值可以被動態建立,正如上面這個針對zip檔案的示例中所示 .
最後,不是所有的伺服器都接受 inputstream 部分. 我們在**的第一行實體化的伺服器可以接受 .
讓我們現在來看看另外乙個示例, addbinarybody直接用於乙個位陣列 :
示例 3.3. - 上傳乙個位陣列和文字
留意contenttype - 它現在被指定為二進位制資料.
4. 總結
本文呈現了 multipartentitybuilder 作為乙個靈活的物件提供了建立乙個 multipart 表單多種api.
示例同樣也展示了如何使用httpclient上傳乙個類似於表單實體的httpentity .
這些示例的所有實現和**塊在 我的github專案 中可以找到 – 這是乙個基於eclipse的專案, 因此可以很容易的匯入並執行.
使用 HttpClient 4 進行檔案上傳
1.概述 本教程我們將描述如何使用httpclient 4進行一次多檔案上傳操作.我們將使用 作為測試伺服器,因為它是面向公眾的,並且接受大多數型別的內容.如果你想要深入學習並了解你可以使用 httpclient 做到的其它很棒的事情 那就去看看首要的 httpclient 教程吧 2.使用 add...
使用HttpClient4實現API測試實戰(1)
size x large b 0 特別說明 b size 2 測試api的多附件上傳,請查閱 url 使用httpclient4實現api測試實戰 2 多附件上傳 url size x large b 1 引言 b size 由於專案開發需要實現已有的api介面的測試,但api介面使用了token驗...
HttpClient 4 訪問遠端服務
1.帶ssl證書 獲取sslsocketfactory物件 sslsocketfactory ssf sslcontext.getsocketfactory 建立httpsurlconnection物件,並設定其sslsocketfactory物件 設定連線引數 conn.setdoinput tr...