1. 程式人生 > >關於Netty傳送http請求實現檔案上傳

關於Netty傳送http請求實現檔案上傳

在傳送http請求的時候關鍵在於request的封裝

1、首先要先將上傳的檔案封裝到HttpPostRequestEncoder中

HttpRequest request1 = new DefaultFullHttpRequest(
        HttpVersion.HTTP_1_1, HttpMethod.POST, url);
HttpDataFactory factory = new DefaultHttpDataFactory(DefaultHttpDataFactory.MINSIZE);
// This encoder will help to encode Request for a FORM as POST.
HttpPostRequestEncoder bodyRequestEncoder = new HttpPostRequestEncoder(factory, request1, false);bodyRequestEncoder.addBodyFileUpload("file", file, "application/x-zip-compressed", false);
2、然後獲取該封裝的request中的List<InterfaceHttpData>
List<InterfaceHttpData> bodylist = bodyRequestEncoder.getBodyListAttributes();
3、最後再重新建立一個HttpRequest,將上面封裝獲取到的List<InterFaceHttpData> 放入,然後通過channel直接傳送該request就行了,該注意的是第二次建立的HttpPostRequestEncoder的第三個引數是true
HttpRequest request = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, url);
request.headers().set(HttpHeaderNames.CONNECTION,HttpHeaderValues.CLOSE
); HttpPostRequestEncoder bodyRequestEncoder2 = new HttpPostRequestEncoder(factory, request, true); bodyRequestEncoder2.setBodyHttpDatas(bodylist); bodyRequestEncoder2.finalizeRequest();

相關推薦

關於Netty傳送http請求實現檔案

在傳送http請求的時候關鍵在於request的封裝 1、首先要先將上傳的檔案封裝到HttpPostRequestEncoder中 HttpRequest request1 = new DefaultFullHttpRequest( HttpVersion

Http伺服器實現檔案與下載(二)

一、引言 歡迎大家接著看我的部落格,如何大家有什麼想法的話回覆我哦,閒話不多聊了,接著上一講的內容來說吧,在上一節中已經講到了請求頭字串的解析,並且在解析中我我們已經獲取了url。就是上節中提到的/doing。當瀏覽器傳送了/doing請求後,這是的與伺服器的連線並沒有

Http伺服器實現檔案與下載(五)

一、引言      歡迎大家和我一起編寫Http伺服器實現檔案的上傳和下載,現在我回顧一下在上一章節中提到的一些內容,之前我已經提到過檔案的下載,在檔案的下載中也提到了檔案的續下載只需要在響應頭中填寫Content-Range這一欄位,並且伺服器的檔案指標指向讀取的指定

Http伺服器實現檔案與下載(一)

一、引言   大家都知道web程式設計的協議就是http協議,稱為超文字傳輸協議。在J2EE中我們可以很快的實現一個Web工程,但在C++中就不是非常的迅速,原因無非就是底層的socket網路編寫需要自己完成,上層的http協議需要我們自己完成,使用者介面需要我們自己完

Http伺服器實現檔案與下載(三)

一、引言   在前2章的內容基本上已經講解了整個的大致流程。在設計Http伺服器時,我設計為四層的結構,最底層是網路傳輸層,就是socket程式設計。接著一層是請求和響應層,叫做Request和Response。在上一層是URL解析流程走向層。最頂層我設計為索引層。這一層主要多檔案時對檔案進行記憶體上的索引

Http伺服器實現檔案與下載(四)

一、引言   歡迎大家來到和我一起編寫Http伺服器實現檔案的上傳和下載,現在我稍微回顧一下之前我說的,第一、二章說明說明了整體的HTTP走向,第三章實現底層的網路程式設計。接著這一章我想給大家講的是請求獲取,和響應傳送的內容。這裡主要講解的響應內容,為什麼?因為我們編寫的是一個與瀏覽器互動的HTTP伺服器

HTTP POST請求報文格式分析與Java實現檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

使用HttpClient4實現檔案請求傳送,伺服器端以MultipartFile形式接收(附依賴jar包地址)

今天學習使用了HttpClient4.2向服務端傳送上傳檔案的post請求,由於伺服器端採用MultipartFile形式接收,查詢資料後決定使用HttpClient4.2實現,以下是實現程式碼(僅作測試使用): public void testtask

SpringCloud 之 Fegin —— 傳送GET、POST請求以及檔案

                       深信自己通過學習理解寫出來的才是自己的 --

基於OkHttp網路通訊工具類(傳送get、post請求檔案和下載)

一、為什麼要用OkHttp? okhttp是專注於提升網路連線效率的http客戶端。 優點: 1、它能實現同一ip和埠的請求重用一個socket,這種方式能大大降低網路連線的時間,和每次請求都建立socket,再斷開socket的方式相比,降低了伺服器伺服器的壓力。 2、okhttp 對

使用HttpClient 傳送 GET、POST、PUT、Delete請求檔案

  import java.io.File;  import java.io.IOException;    import java.io.UnsupportedEncodingException;    import java.nio.charset.Charset;  i

XMLHttpRequest實現HTTP協議下檔案斷點續

目前從實用技術角度講,檔案上傳的斷點續傳實現主要是藉助客戶端,例如,我們首次進入某網盤,會看到下圖所示的“控制元件安裝”提示: 有的網盤也有檔案上傳暫停的功能,這似乎是藉助swfUpload實現的。 也就是,這些帶續傳功能的上傳都不是使用HTTP協議實現的,也就

Android實現檔案(使用Android-ansync-http

Android端實現檔案的上傳,程式碼如有雷同純屬開源! 服務端實現(使用Servlet): public void doGet(HttpServletRequest request, HttpServletResponse response)

SpringBoot專案實現檔案和郵件傳送

前言 本篇文章主要介紹的是SpringBoot專案實現檔案上傳和郵件傳送的功能。 SpringBoot 檔案上傳 說明:如果想直接獲取工程那麼可以直接跳到底部,通過連結下載工程程式碼。 開發準備 環境要求 JDK:1.8 SpringBoot:1.5.9.RELEASE 首先還是Maven的相關依賴: pom

struts2實現檔案與下載功能

一、Demo介紹 基於struts2框架,實現多檔案的上傳和下載功能。 實現原理圖: 部分介面圖: 上傳成功及下載頁面: 二、主要程式碼 uploadFile.jsp:在form表單中包含一個文字框(上傳使用者的姓名)和兩個檔案上傳選項. <%@

Java Springboot結合FastDFS實現檔案以及根據圖片url將圖片至圖片伺服器

上一篇文章我們已經講解了如何搭建FastDFS圖片伺服器,環境我們準備好了現在就讓我們開始與Java結合將他應用到實際的專案中吧。本篇文章我們將會展示上傳圖片到FastDFS圖片伺服器以及通過外網的圖片url將圖片上傳至我們自己的圖片伺服器中。 1.建立springbo

yii框架實現檔案

yii框架實現檔案上傳 1.首先yii框架下載uploadFile類 2.html程式碼 <input type="file" class="file" style="display: none" name="business_license" /> 3.j

原生javascript實現檔案功能程式碼

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ini

【SSH網上商城專案實戰13】Struts2實現檔案功能

  轉自:https://blog.csdn.net/eson_15/article/details/51366384 上一節我們做完了新增和更新商品的功能,這兩個部分裡有涉及到商品圖片的上傳,並沒有詳細解說。為此,這篇文章詳細介紹一下Struts2實現檔案上傳的功能。 1