使用httpclient上傳檔案

2021-09-01 17:56:21 字數 877 閱讀 1765

由於客戶端有上傳檔案的需求,伺服器接收到客戶端上傳的檔案後,需要將檔案透傳給後台業務系統.

以前給後台業務系統互動時,組裝多段請求時使用的是org.apache.http.entity.mime.content.filebody物件儲存檔案物件透傳,但是這樣的話,伺服器需要在本地生成臨時檔案,比較麻煩.

contentbody body = new filebody((file) value);

entity.addpart("pic", body);

這樣的話需要先生成本地檔案,上傳成功後再刪除臨時檔案,相當繁瑣.

今天偶然發現,可以使用org.apache.http.entity.mime.content.inputstreambody.inputstreambody(inputstream, string)類,直接將客戶端的檔案輸入流拷貝一下就可以了.這樣就省去了在本地生成臨時檔案的麻煩.

bytearrayinputstream bis = new bytearrayinputstream(data);

inputstreambody isb = new inputstreambody(bis, filename);

entity.addpart("pic", isb);

通過以上改造,省去了在本地生成臨時檔案的煩惱,並且使**看起來更加直觀.

這種方式適用於需要透傳檔案的地方.比如 [color=green]"客戶端"--"伺服器"--"業務系統"[/color],[color=darkblue]"客戶端"[/color]最終要將檔案上傳到[color=darkblue]"業務系統"[/color],這時[color=darkblue]"伺服器"[/color]就可以使用這種方法,直接透傳,省時省力.

Java使用HttpClient上傳檔案

上傳所用httpclient版本為4.5.1 客戶端 模擬表單上傳檔案 postfile 上傳的檔案 posturl 請求位址 postparam 其他表單的請求引數 發起請求 並返回請求的響應 銷毀 entityutils.consume resentity catch exception e f...

httpclient 上傳檔案

3.0版本 用multipartrequestentity方式,怎麼搞都不行。最後還是用了multipartpostmethod,才算搞定 總之,不好使啊.具體使用方式如下 2,post.addrequestheader content type multipart form data charse...

HttpClient上傳檔案

httpclient post請求 上傳多 檔案 param url 請求位址 param params 引數列表 return 響應字串 throws unsupportedencodingexception author jie date 2015 2 12 public static stri...