2015-04-04 133 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