2015-04-04 67 views
0

我正在Netty中構建一個允許用戶下載和上傳文件的應用程序。但在此之前,他們應該能夠登錄到服務器。登錄後,他們可以下載或上傳文件。在netty中發送和接收不同類型的對象

問題我得到的是我將如何知道我收到的數據是字符串(用戶名密碼字符串)還是分塊文件(因爲我將文件發送爲ChunkedFile)或任何其他Java對象。我將如何正確地將它們轉換爲原始形式。我知道我們可以使用編碼器和解碼器,但沒有適當的例子可以顯示任何接近我遇到的問題?

感謝

+0

一個POST HTTP請求什麼問題添加http頭與類型的文件? – Mikhail 2015-04-07 12:30:41

+0

是的,我在幾個地方閱讀,我們可以添加一個httpheader發送的數據,但我找不到任何這方面的例子。 – Sneh 2015-04-07 13:49:01

回答

0

發送與頭

// Prepare the HTTP request. 
      FullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, uriJson.toASCIIString()); 
      request.headers().set(CONTENT_TYPE, "text/plain; charset=UTF-8"); 

      ByteBuf buf = Unpooled.copiedBuffer(data, CharsetUtil.UTF_8); 
      request.content().writeBytes(buf); 
      request.headers().set(CONTENT_LENGTH,request.content().readableBytes()); 
+0

你也可以告訴我需要用什麼編碼器和解碼器來處理HttpRequest? 另外,因爲我將發送一個文件作爲分塊文件,並且當這樣做時多個messageReceived()被命中,因爲文件是分開發送的,那麼這是否意味着每次我在httpheader中都有文件名? – Sneh 2015-04-07 15:09:50

+0

請參閱https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example – Mikhail 2015-04-07 15:15:28