node.js+postman实现模拟HTTP服务器与客户端交互

本文主要介绍了node.js+postman实现模拟HTTP服务器与客户端交互,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

node.js+postman实现模拟HTTP服务器与客户端交互,久久派带你了解更多相关信息。

目录
  • 一、node搭建HTTP服务器
  • 二、HTTP服务器处理get请求
    • 1、postman发送get请求
    • 2、服务器解析
  • 三、HTTP服务器处理post请求
    • 1、postman发送post请求
    • 2、服务器解析

当应用程序(客户端)需要某一个资源时,可以向一台服务器通过http请求获取到这个资源。提供资源的服务器就是web服务器(本文用node.js创建),用postman模拟客户端向服务器发送请求。

node.js+postman实现模拟HTTP服务器与客户端交互

一、node搭建HTTP服务器

node中使用 http 模块来创建 HTTP 服务器, 每当接收到新的请求时,request 事件会被调用,并提供两个对象:一个请求req(http.IncomingMessage 对象)和一个响应res(http.ServerResponse 对象)。

request 提供了请求的详细信息。 通过它可以访问请求头和请求的数据。(客户端–>服务器)

response 用于构造要返回给客户端的数据(服务器–>客户端)。下面是一个简单的HTTP web服务器示例。

下面就是一个简单的HTTP服务器的例子

//导入http模块const http = require(\'http\')// 创建http服务器const server = http.createServer((req, res) => {		//设置 statusCode 属性为 200,以表明响应成功				res.statusCode = 200  		// res本质上继承了stream.Writable的类        // 向客户端发送完响应头和正文后告诉服务器本次消息传输结束        res.end(\"hollow server\")        // 相当于res.writer(\"hollow server\")+res.end()    })    // 监听服务器,当服务器就绪时,listen 回调函数会被调用    //控制台打印启动成功server.listen(\'8089\', \'localhost\', () => {    console.log(\"启动成功\")})

这时候你的本地服务器就搭建完毕了,可以去浏览器打开localhost:8089查看

node.js+postman实现模拟HTTP服务器与客户端交互

二、HTTP服务器处理get请求

Postman 是一种常用的接口测试工具,可以发送几乎所有类型的HTTP请求。Postman适用于不同的操作系统,Postman Mac、Windows X32、Windows X64、Linux系统,还支持postman 浏览器扩展程序、postman chrome应用程序等。

下载也十分简单,可以点击这里直接去官网下载👉👉👉 Download Postman

1、postman发送get请求

postman中新建一个request请求,在Enter request url 中填写上面我们用node.js创建的HTTP服务器的主机地址以及用户名和密码http://localhost:8089/login?username=ahua&password=123,请求类型选择GET,点击send,postman就会向服务器发送一个get请求

node.js+postman实现模拟HTTP服务器与客户端交互

2、服务器解析

服务器这边接收到客户端(postman)的get请求,对发送过来的数据进行处理

const http = require(\'http\')    // 处理url的模块const url = require(\'url\')    // 处理query的模块const qs = require(\'querystring\')const server = new http.Server((req, res) => {    // request对象中封装了客户端给我们服务器传递过来的所有信息     // 对url进行解析    const { pathname, query } = url.parse(req.url)    if (pathname === \'/login\') {        //console.log(query)            // qs的parse方法可以对query进行处理            // 将字符串类型转换为js对象  username=ahua&password=123  -->  {username: \'ahua\',password: 123}        //console.log(qs.parse(query))        const { username, password } = qs.parse(query)        console.log(username, password)        res.end(\'请求结果\')    }    console.log(req.url)    //打印请求类型    console.log(req.method)    //请求头    console.log(req.headers)})server.listen(\'8089\', \'localhost\', () => {    console.log(\"serve启动成功\")})

服务器这边的解析结果

node.js+postman实现模拟HTTP服务器与客户端交互

三、HTTP服务器处理post请求

1、postman发送post请求

上面get请求中将用户名和密码放在地址栏可能不够安全,处理账号密码想稳妥一点,现在将他们放在body里用json文件传给服务器。

下图所示便是postman将username和password放在json文件中通过bady传递给服务器的操作

node.js+postman实现模拟HTTP服务器与客户端交互

2、服务器解析

服务器这边接收到客户端(postman)的post请求,对发送过来的数据进行处理。首先应该判断是否为post请求,然后拿到body中的数据,再对数据进行解析。

const http = require(\'http\')    // 处理url的模块const url = require(\'url\')const server = new http.Server((req, res) => {    // 获取客户端传过来的url中的pathname    const { pathname } = url.parse(req.url)        // 判断是否为login    if (pathname === \'/login\') {        // 判断客户端发送的是否为post请求        if (req.method === \'POST\') {            // 定义客户端传过来数据的默认编码格式            req.setEncoding(\'utf-8\')                // req.setEncoding(\'binary\') binary定义二进制编码                // 拿到body中的数据                // body中的数据是通过流来写入的                // 当监听到data事件,获取到输入流,也就是body中相关的内容,可以返回这个data的结果            req.on(\'data\', (data) => {                // JSON.parse()把对象中的字符串转成js对象                 //  {\"username\":\"阿花\",\"passward\":\"123\"}  ---> {username: \'ahua\',password: 123}                const { username, passward } = JSON.parse(data)                console.log(username, passward)            })        }    }    res.end(\'请求结果\')})server.listen(\'8089\', \'localhost\', () => {    console.log(\"serve启动成功\")})

服务器打印请求结果

node.js+postman实现模拟HTTP服务器与客户端交互

这样就完成了一个简单的服务器交互流程。

到此这篇关于node.js+postman实现模拟HTTP服务器与客户端交互的文章就介绍到这了,更多相关node.js+postman 服务器与客户端交互内容请搜索趣讯吧以前的文章或继续浏览下面的相关文章希望大家以后多多支持趣讯吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/8183.html

(0)
nan
上一篇 2021-07-29
下一篇 2021-07-29

相关推荐

  • 三星为Galaxy(S21系列带来One,UI,4:基于Android,12)

    三星在自家论坛上宣布,即将启动Galaxy S21系列的One UI 4测试计划。不过,三星并未说明何时会推出测试版本,唯一可以确定的是,三星One UI 4将基于Android 12开发。还有国外博主曝料声称,

    热点头条 2021-07-29
    0
  • 连续560天本土零新增,精准防控看江西经验

    原标题:连续560天本土零新增,精准防控看江西经验来源:健康时报截至9月9日,江西省已连续560天无本土新增病例。这意味着去年武汉发生第一轮疫情后,江西一直没有发生本土疫情。特别是在安徽、湖北、湖南、福建、广东、浙江等与江西接壤的6个省近期

    2021-09-10 热点头条
    0
  • 行尸走肉第11季在线看未删减完整版(行尸走肉第十一集在线观看完整版)

    AMC的《行尸走肉TheWalkingDead》第十一兼最终季,现确定在美国时间8月22日首播。行尸走肉第十一季在8月22日正式上线了,也是该系列的最终季,想必很多朋友们期待了很久了。

    2021-08-23
    0
  • 看透人心看透世界的句子(说透人心的句子及感悟)

    一*人生很多事情就如打喷嚏,虽然你已经有所预感,却总是措手不及。越是黑暗时,越不能熄灭生命的灯盏,越要点亮人生的光芒。你今天的苦果,是昨日的伏笔,当下的付出,是明天的花开。二*多心的人注定活得辛苦,因为太容易被别人的情绪所左右。多心的人总

    2021-12-15 热点头条
    0
  • 男生送绣球花的用意(送蓝色绣球花什么意思)

    男生送女生花是比较常见的一种行为,我们都知道每种花的话语是不一样的,如果男生给你送绣球花代表什么呢?男生给女生送什么颜色绣球花最好?送蓝色绣球花什么意思?下面就跟久久派小编来详细了解一下吧!男生送绣球花的用意绣球花又名粉团花、八仙花,因花朵形状如同球形,而得

    2021-09-18
    0
  • 百家姓排名前十位的姓氏(百家姓氏排行)

    中国最新姓氏人口数排名——数据来源于第六次全国人口普查,由国务院人口普查办公室统计。本文列出了目前中国人口最多的前十大姓和人口最多的前300名姓氏。而近几年其他任何版本的百家姓排名,都是所谓学者研究成果,没有调查数据做支撑。安徽绩溪胡氏祠堂最新中国姓

    2022-01-08 热点头条
    0

发表回复

登录后才能评论