3

有这样的客户

StringBody body = new StringBody("form_username", Charset.forName("UTF-8"));
multipart.addPart("username", body);
ByteArrayBody bBody = new ByteArrayBody(bs, "form_command.dat");
multipart.addPart("data", bBody);
httppost.setEntity(multipart);

应该如何在 netty 服务器中检索值。我已经在管道中添加了一个 HttpRequestDecoder。并且 messageReceived 这样处理

HttpRequest request = (HttpRequest) e.getMessage();
    this.mRequest = request;


    if (is100ContinueExpected(request)) {
        send100Continue(e);
    }

    ChannelBuffer content = request.getContent();
    if (content.readable()) {

        System.out.println("Content()\n" + content.toString(CharsetUtil.UTF_8) + "\r\n");


    }

打印输出。

Content()
--Xdq2t6unVsUp191MKhpR6BXz5P7Eoo
Content-Disposition: form-data; name="username"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

form_username
--Xdq2t6unVsUp191MKhpR6BXz5P7Eoo
Content-Disposition: form-data; name="data"; filename="form_command.dat"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary



--Xdq2t6unVsUp191MKhpR6BXz5P7Eoo--


End of contents
4

1 回答 1

1

您需要使用新的HttpPostRequestDecoder。这仅在即将发布的 Netty 3.5(3 分支)和 Netty 4(主分支)中可用。

这里是一个示例用法

如果您现在需要使用它,您可以将这个拉取请求中提到的文件复制到您的项目命名空间中并使用它。

希望这可以帮助。

于 2012-05-14T02:03:44.360 回答