栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Netty之获取FullHttpRequest中的请求参数信息(x-www-form-urlencoded协议)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Netty之获取FullHttpRequest中的请求参数信息(x-www-form-urlencoded协议)

获取FullHttpRequest中的请求参数信息
  • FullHttpRequest
    • HTTP请求行
    • HTTP请求头
    • HTTP请求参数

FullHttpRequest

使用Netty开发一个HTTP服务器,Content-Type为 x-www-form-urlencoded的类型,需要从中获取请求参数信息

HTTP请求行
fullRequest.getMethod().name(); //获取请求方法
fullRequest.getMethod().getUri(); //获取请求URI
fullRequest.getProtocolVersion().text() //获取HTTP协议版本
HTTP请求头
private final HttpHeaders header = fullRequest.headers();//获取Netty内置的请求头对象
List> list = header.entries(); //将包含的请求信息赋值到list中
HTTP请求参数
//获取请求体body信息
fullRequest.content().toString(CharsetUtil.UTF_8)

对于Content-Type为 x-www-form-urlencoded的类型,body返回的是一个如下的一个字符串: “key1=value1&key2=value2”,需要手动解析

//解析方法,将字符串解析为一个Map结构
    private Map getRequestParams(FullHttpRequest request) {
        HttpPostRequestDecoder decoder = new HttpPostRequestDecoder(new DefaultHttpDataFactory(false), request);
        List httpPostData = decoder.getBodyHttpDatas();
        Map params = new HashMap<>();

        for (InterfaceHttpData data : httpPostData) {
            if (data.getHttpDataType() == InterfaceHttpData.HttpDataType.Attribute) {
                MemoryAttribute attribute = (MemoryAttribute) data;
                params.put(attribute.getName(), attribute.getValue());
            }
        }
        return params;
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/632393.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号