我正在使用 Netty,我必须接受并解析 http POST 请求。据我所知,Netty 没有对 POST 的内置支持,只有 GET。 (这是一个处理原始网络操作的相当低级的库。使用开箱即用的 servlet 容器不是一种选择。)
如果我将 POST 请求的内容作为字节数组,将其解析为参数映射的最快且最无错误的方法是什么?
我可以自己写这个,但是必须有一些内置到 JDK 中的方法可以使这更容易。我敢打赌有一些陷阱和极端情况需要处理。
最佳答案
Netty有一个高级的POST请求解码器(HttpPostRequestDecoder)可以解码 Http 属性,使用分块编码的 FileUpload 内容。
这是一个简单的表单解码示例
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
HttpRequest request = (HttpRequest) e.getMessage();
HttpPostRequestDecoder decoder = new HttpPostRequestDecoder(new DefaultHttpDataFactory(false), request);
InterfaceHttpData data = decoder.getBodyHttpData("fromField1");
if (data.getHttpDataType() == HttpDataType.Attribute) {
Attribute attribute = (Attribute) data;
String value = attribute.getValue()
System.out.println("fromField1 :" + value);
}
}
关于java - 如何在 Java 中解码 http POST 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8659522/