首页 > 专栏 > 前端 > 文章详情
http 请求中的 payload 发布于:2021-04-27 20:09:38   原创发表   查看:41  讨论:0
概念:MPZ易塔云建站-模板下载,web开发资源,技术博客
MPZ易塔云建站-模板下载,web开发资源,技术博客
payload 字面意思“有效载荷,有效负荷,有效载重”。MPZ易塔云建站-模板下载,web开发资源,技术博客
MPZ易塔云建站-模板下载,web开发资源,技术博客
要解释什么是有效载重,用货运行业打个比方:MPZ易塔云建站-模板下载,web开发资源,技术博客
比如有一位客户需要支付一笔费用委托货车司机运送一车石油,石油本身的重量、车子的重量、司机的重量等等,这些都属于载重(load)。但是对于该客户来说,他关心的只有石油的重量,所以石油的重量是有效载重(payload,也就是付费的重量)。MPZ易塔云建站-模板下载,web开发资源,技术博客
MPZ易塔云建站-模板下载,web开发资源,技术博客
所以抽象一下,payload 可以理解为一系列信息中最为关键的信息。MPZ易塔云建站-模板下载,web开发资源,技术博客
对于程序员来说就是在程序中 起关键作用的代码。MPZ易塔云建站-模板下载,web开发资源,技术博客
回到代码中,举一个最简单的例子,一个 ajax 请求返回一个 JSON 格式
{MPZ易塔云建站-模板下载,web开发资源,技术博客
    status: 200,MPZ易塔云建站-模板下载,web开发资源,技术博客
    hasError: false,MPZ易塔云建站-模板下载,web开发资源,技术博客
    data: {MPZ易塔云建站-模板下载,web开发资源,技术博客
        userId: 1,MPZ易塔云建站-模板下载,web开发资源,技术博客
        name: 'undefined'MPZ易塔云建站-模板下载,web开发资源,技术博客
    }MPZ易塔云建站-模板下载,web开发资源,技术博客
}
这里的 data 就是 payload,也就是关键信息。而 statushasError等信息是load,虽然也是信息,但相对没有那么重要。MPZ易塔云建站-模板下载,web开发资源,技术博客
MPZ易塔云建站-模板下载,web开发资源,技术博客
安全方面:MPZ易塔云建站-模板下载,web开发资源,技术博客
MPZ易塔云建站-模板下载,web开发资源,技术博客
通常在传输数据时,为了使数据传输更可靠,要把原始数据分批传输,并且在每一批数据的头和尾都加上一定的辅助信息,MPZ易塔云建站-模板下载,web开发资源,技术博客
比如数据量的大小、校验位等,这样就相当于给已经分批的原始数据加一些外套,这些外套起标示作用,使得原始数据不易丢失,MPZ易塔云建站-模板下载,web开发资源,技术博客
一批数据加上“外套”就形成了传输通道的基本传输单元,叫做数据帧或数据包,而其中的原始数据就是payload。MPZ易塔云建站-模板下载,web开发资源,技术博客
MPZ易塔云建站-模板下载,web开发资源,技术博客
应用:MPZ易塔云建站-模板下载,web开发资源,技术博客
MPZ易塔云建站-模板下载,web开发资源,技术博客
后台获取放在Request Payload中的值。MPZ易塔云建站-模板下载,web开发资源,技术博客
MPZ易塔云建站-模板下载,web开发资源,技术博客
MPZ易塔云建站-模板下载,web开发资源,技术博客
MPZ易塔云建站-模板下载,web开发资源,技术博客
后台要想从Request Payload中得到自己想要的数据,就要从流中来获取数据,具体的代码为:MPZ易塔云建站-模板下载,web开发资源,技术博客
 
private String getStringFromStream(HttpServletRequest req) {MPZ易塔云建站-模板下载,web开发资源,技术博客
    ServletInputStream is;MPZ易塔云建站-模板下载,web开发资源,技术博客
    try {MPZ易塔云建站-模板下载,web开发资源,技术博客
        is = req.getInputStream();MPZ易塔云建站-模板下载,web开发资源,技术博客
        int nRead = 1;MPZ易塔云建站-模板下载,web开发资源,技术博客
        int nTotalRead = 0;MPZ易塔云建站-模板下载,web开发资源,技术博客
        byte[] bytes = new byte[10240];MPZ易塔云建站-模板下载,web开发资源,技术博客
        while (nRead > 0) {MPZ易塔云建站-模板下载,web开发资源,技术博客
            nRead = is.read(bytes, nTotalRead, bytes.length - nTotalRead);MPZ易塔云建站-模板下载,web开发资源,技术博客
            if (nRead > 0)MPZ易塔云建站-模板下载,web开发资源,技术博客
                nTotalRead = nTotalRead + nRead;MPZ易塔云建站-模板下载,web开发资源,技术博客
        }MPZ易塔云建站-模板下载,web开发资源,技术博客
        String str = new String(bytes, 0, nTotalRead, "utf-8");MPZ易塔云建站-模板下载,web开发资源,技术博客
        return str;MPZ易塔云建站-模板下载,web开发资源,技术博客
    } catch (IOException e) {MPZ易塔云建站-模板下载,web开发资源,技术博客
        e.printStackTrace();MPZ易塔云建站-模板下载,web开发资源,技术博客
        return "";MPZ易塔云建站-模板下载,web开发资源,技术博客
    }MPZ易塔云建站-模板下载,web开发资源,技术博客
}
本文转载于:https://www.cnblogs.com/straybirds/p/9807627.html

评论

  • 匿名