httpclient 4.+以上版本上傳文件遇到的問(wèn)題記錄

在這周有個(gè)系統(tǒng)對(duì)接種要求采用Put上傳文件
測(cè)試中獲取本地file文件并上傳的時(shí)候沒(méi)有問(wèn)題, 而通過(guò)前臺(tái)接口選擇文件傳輸?shù)胶笈_(tái)。在通過(guò)Http上傳至文件服務(wù)器時(shí)發(fā)現(xiàn)異常情況


文件服務(wù)器上下載的文件

如圖所示,下載到本地生成文件時(shí)二進(jìn)制流中 會(huì)多處幾行內(nèi)容,這就很納悶
原先代碼采用的
multipartEntityBuilder.addBinaryBody("file", io);
HttpEntity entiy = multipartEntityBuilder.build();
httpClient.execute(httpPut)
進(jìn)行的數(shù)據(jù)封裝,之后進(jìn)行請(qǐng)求下載文件,服務(wù)器返回的二進(jìn)制流數(shù)據(jù)大小總是會(huì)比原先上傳時(shí)的內(nèi)容大??!
百思不得其解郵件編輯文件后發(fā)現(xiàn)二進(jìn)制文件頭尾多了一些內(nèi)容。

經(jīng)過(guò)一番搗鼓以后改成使用
BasicHttpEntity basicHttpEntity=new BasicHttpEntity();
basicHttpEntity.setContent(io);
再進(jìn)行
httpClient.execute(httpPut);
問(wèn)題完美解決。

原因:multipartEntityBuilder進(jìn)行數(shù)據(jù)封裝的時(shí)候會(huì)帶上請(qǐng)求頭尾(form表單提交的形式),執(zhí)行請(qǐng)求的時(shí)候這些數(shù)據(jù)會(huì)帶給服務(wù)端
改寫(xiě)成BasicHttpEntity將數(shù)據(jù)封裝在請(qǐng)求體中進(jìn)行傳輸。
再次下載的時(shí)候就不會(huì)多出頭與尾的內(nèi)容。通過(guò)下載請(qǐng)求得到的流轉(zhuǎn)成byte[]數(shù)組可以直接返回給前臺(tái)即可
至此問(wèn)題解決........特此記錄防止下次在遇到

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景:項(xiàng)目中涉及到表單數(shù)據(jù)提交,其中還包含有圖片。 關(guān)于如何保存圖片,我一開(kāi)始有兩種思路: 將圖片轉(zhuǎn)換成二進(jìn)制字節(jié)...
    EakonZhao閱讀 1,733評(píng)論 0 0
  • 前言 超文本傳輸協(xié)議(HTTP)也許是當(dāng)今互聯(lián)網(wǎng)上使用的最重要的協(xié)議了。Web服務(wù),有網(wǎng)絡(luò)功能的設(shè)備和網(wǎng)絡(luò)計(jì)算的發(fā)...
    狂奔的蝸牛_wxc閱讀 5,650評(píng)論 0 12
  • 一、文件上傳 經(jīng)常有人咨詢(xún)上傳文件的原理,并且反饋第三方框架 AFNetworking 在處理有些文件上傳時(shí)無(wú)法勝...
    AlanGe閱讀 1,927評(píng)論 0 2
  • 久違的晴天,家長(zhǎng)會(huì)。 家長(zhǎng)大會(huì)開(kāi)好到教室時(shí),離放學(xué)已經(jīng)沒(méi)多少時(shí)間了。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,789評(píng)論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開(kāi)了第一次的黨會(huì),身份的轉(zhuǎn)變要...
    余生動(dòng)聽(tīng)閱讀 10,798評(píng)論 0 11

友情鏈接更多精彩內(nèi)容