nodejs-http客户端

nodejs实现http客户端发送请求   nodejs实现http客户端发送请求,可通过http模块的request()方法实现。一般http消息发送可分为POST、GET、DELETE和PUT,不过此处仅以POST方式进行编写调测。本次编写有index.js和data.js脚本,其中index.js为接口模型调用方法,data.js中则将各可能会使用到的参数值以变量形式收集在一块,这样调测时我们只要对data中各参数值进行修改即可,... 阅读详情
http 模块提供了两个函数 http.request 和 http.get,功能是作为客户端向 HTTP 服务器发起请求。
http.request(options, callback) 发起 HTTP 请求。接受两个参数,option 是 一个类似关联数组的对象,表示请求的参数,callback 是请求的回调函数。
option 常用的参数如下所示。
 host :请求网站的域名或 IP 地址。
 port :请求网站的端口,默认 80。
 method :请求方法,默认是 GET。
 path :请求的相对于根的路径,默认是“/”。QueryString 应该包含在其中。 例如 /search?query=byvoid。
 headers :一个关联数组对象,为请求头的内容。
callback 传递一个参数,为 http.ClientResponse 的实例。 http.request 返回一个 http.ClientRequest 的实例。 
服务端的代码为:
var http = require("http");//获取http对象
var url = require("url");//获取url对象
var querystring = require("querystring");//获取querystring对象
http.createServer(
  //匿名的回调函数,当有请求进来的时候调用该函数
  //req参数相当于J2EE的HttpServletRequest,
  //res参数相当于J2EE的HttpServletResponse
	function(req,res){
	  	res.writeHead(200,{"Content-Type":"text/html"});
	  	//获取请求地址
	  	var requresturl = req.url;
	    res.write("request url:" + requresturl + "<br/>");
	    //请求的路径
	    var pathname = url.parse(req.url).pathname;
	    res.write("pathname:" + pathname + "<br/>");
	    //请求的参数
	    var querystr = url.parse(req.url).query;
	    res.write("query str : " + querystr + "<br/>");

	    //请求的地址进行所有属性的解析
	    var obj = url.parse(req.url);
	    res.write(JSON.stringify(obj)+"<br/>");
	    res.write("<hr/>");

	    //请求的参数转为JSON格式
	    var params = querystring.parse(querystr);
	    res.write(JSON.stringify(params)+"<br/>");
	    res.write("<hr/>");
	    
	    res.end("please input a url like  : http://172.24.12.38:3000/aa/b/c/a.do?a=1&b=4");
	}
).listen(3000); //监听3000端口

console.log(" HTTP Server is Listening at port 3000.");

客户端发送请求的代码为:

var http = require("http");//获取http对象
var querystring = require("querystring");//获取querystring对象
var contents = querystring.stringify({
	name:'devil13th',
	email:'devil13th@163.com',
	addr : ' China BeJing Xizhimen Xinjiekou'
})

/*
http.request(options, callback) 发起 HTTP 请求。接受两个参数,option 是
一个类似关联数组的对象,表示请求的参数,callback 是请求的回调函数
 --- option
常用的参数如下所示。
 host :请求网站的域名或 IP 地址。
 port :请求网站的端口,默认 80。
 method :请求方法,默认是 GET。
 path :请求的相对于根的路径,默认是“/”。QueryString 应该包含在其中。
例如 /search?query=byvoid。
 headers :一个关联数组对象,为请求头的内容。
 ----callback 传递一个参数,为 http.ClientResponse 的实例。
 
http.request 返回一个 http.ClientRequest 的实例。
*/
var options = {
	host:'172.26.192.180',
	path:'/aa/b/c/a.do?a=1&b=4',
	method:'get',
	port:3000,
	headers:{
		'Content-Type':'application/x-www-form-urlencoded',
		'Content-Length':contents.length
	}
}

//创建http.ClientRequest对象 ,
/*表示一个已经产生而且正在进行中的 HTTP 请求。
它提供一个 response 事件,
即 http.request或 http.get 第二个参数指定的回调函数的绑定对象。
*/

var req = http.request(options,function(res){
	res.setEncoding('utf-8');
	res.on('data',function(data){
		console.log(data);
	});
});

req.write(contents);
req.end();//不要忘了通过 req.end() 结束请求,否则服务器将不会收到信息。
打开两个bash,先运行服务器代码,在运行客户端代码我们可以看到 
 

http.ClientRequest对象
http.ClientRequest 是由 http.request 或 http.get 返回产生的对象,表示一 个已经产生而且正在进行中的 HTTP 请求。它提供一个 response 事件,即 http.request 或 http.get 第二个参数指定的回调函数的绑定对象。 
http.ClientRequest 像 http.ServerResponse 一样也提供了 write 和 end 函 数,用于向服务器发送请求体,通常用于 POST、PUT 等操作。所有写结束以后必须调用 end 函数以通知服务器,否则请求无效。http.ClientRequest 还提供了以下函数。
request.abort():终止正在发送的请求。
request.setTimeout(timeout, [callback]):设置请求超时时间,timeout 为 毫秒数。当请求超时以后,callback 将会被调用。
此外还有request.setNoDelay([noDelay])、request.setSocketKeepAlive ([enable], [initialDelay]) 等函数,参见api
http.ClientResponse
http.ClientResponse 与 http.ServerRequest 相似,提供了三个事件 data、end 和 close,分别在数据到达、传输结束和连接结束时触发,其中 data 事件传递一个参数 chunk,表示接收到的数据。
http.ClientResponse 也提供了一些属性,用于表示请求的结果状态
statusCode HTTP 状态码,如 200、404、500
httpVersion HTTP 协议版本,通常是 1.0 或 1.1
headers HTTP 请求头
trailers HTTP 请求尾(不常见)
http.ClientResponse 还提供了以下几个特殊的函数。
 response.setEncoding([encoding]):设置默认的编码,当 data 事件被触发 时,数据将会以 encoding 编码。默认值是 null,即不编码,以 Buffer 的形式存 储。常用编码为 utf8。
 response.pause():暂停接收数据和发送事件,方便实现下载功能。
 response.resume():从暂停的状态中恢复。

Node.js中的http请求客户端示例(request client) 本篇文章主要介绍了Node.js中的http请求客户端示例(request client),具有一定的参考价值,感兴趣的小伙伴们可以参考一下 立即下载

相关推荐

关于使用vcpkg下载osgearth遇到的问题

注意--x-manifest-root=后面跟着的E:\gitproject\osgearth-osgearth-3.5\vcpkg是你下载的源码解压缩后vcpkg.json的文件地址,然后等待编译完成。安装vcpkg后使用vcpkg install osgearth:x64-windows安装好osgearth并且导入项目使用时,发现无法运行官方文档中示例的main.cpp。这里写一种自己用过的使用vcpkg安装osgearth3.5的方法,源码,打开vcpkg所在的命令行,执行。示例main.cpp。

m0_61776040的博客 1523

【NodeJs】实现简易http客户端服务器

前言 利用nodejs构建一对c/s的http架构 通过定义服务器的响应报文 以及客户端的请求解析操作 在而客户端输出从server返回的信息 服务端实现 const http = require('http') // createServer返回一个基于事件的http服务器 const server = http.createServer(function (req, res) { // 响应的头部信息 res.writeHead(200, { 'content-type

小楼一夜听春雨 861

Unity游戏开发实战:手把手教你用C#实现一个简单的反向运动学(IK)控制器

本文详细介绍了在Unity游戏开发中如何使用C#实现一个简单的反向运动学(IK)控制器。通过建立骨骼层级结构、实现CCD算法和角度限制,开发者可以轻松创建自然的角色动画效果。文章还提供了可视化调试工具和性能优化方案,帮助提升开发效率。

weixin_42523711的博客 243

Node.js——HTTP模块

文章目录Node中的Http一、HTTP服务器1.http.server事件2.http.ServerRequset请求信息3.获取GET请求内容4.获得POST请求内容5.http.ServerResponse返回客户端信息6. 响应乱码7. 不同地址响应不同内容二、Express 框架2.1Express框架是什么2.3Express 框架特性2.4基本使用(入门代码)2.5express的get和post请求2.6获取请求参数(1)req.query2.7获取动态参数 Node中的Http Node

LSH_的个人博客 9231

单片机NTC热敏电阻测温:六种实用电路方案与选型指南

本文详细介绍了单片机系统中NTC热敏电阻测温的六种实用电路方案,包括分压法、恒流源法、RC充放电法、电桥法、频率法及集成专用IC方案,并提供了关键的硬件选型指南和软件处理技巧,帮助工程师实现高精度、低成本的温度测量。

herb5的博客 816

生成对抗网络(GAN)在数据增强中的应用【附核心实战代码】

生成对抗网络(GAN)由Ian Goodfellow等人在2014年提出。它包含两个主要的部分:生成器(Generator)和判别器(Discriminator)。生成器负责生成假数据,而判别器则用于区分输入的数据是真实的还是由生成器生成的。通过这种对抗过程,生成器不断优化自己,生成越来越真实的样本。最终,生成器生成的样本几乎无法被判别器区分与真实数据。

一键难忘的博客 3119

node.js http客户端

一、http模块提供了两个函数http.request和http.get,功能是作为客户端向HTTP服务器发起请求。             Ext.Ajax.request({},function(response))             1.http.request(options,callback)发起HTTP请求,接受两个参数,option是一个类似关联数组的对象,表示请求的参数,

dreamzuora的博客 2069

DDD系列 - 第12讲 如何在DDD中实现Query服务(轻量化CQRS)

轻量化CQRS、整合Repository和DAO的优势。

罗小爬的技术宝书 265

Node.js HTTP客户端

一、简介 1、Node.js标准库提供了http模块,其中封装了一个HTTP客户端。 2、http.request是一个HTTP客户端工具,用于向HTTP服务器发起请求。 二、客户端向HTTP服务器发起请求的两个重要函数 1、http.request(options, callback) :发起HTTP请求。参数option是一个类似关联数组的对象,表示请求的参数,callback是请求的

漂流在深圳 5953

【DaVinci Developer工具实战】03 -导入xml文件

本文档描述了 DaVinci Developer 导入数据的的具体功能 ,它适用于导入AUTOSAR SWC 模板【AUTOSAR XML 文件】 文件。

1990

静态时序分析—伪路径(set_false_path)

set_false_path应用场景

m0_61544122的博客 2万+

node.js——http模块

http 模块是 Node.js 官方提供的、用来创建 Web 服务器的模块。node.js提供了http模块,其中封装了一个http服务器和一个建议的http客户端。http.server是一个基于事件的http服务器,内部由c++实现,接口由JavaScript封装。http.request则是一个http客户端工具,用户向服务器发送请求。http.Agent:创建全局实例,以管理 HTTP 客户端连接的持久性和复用,

CarveStone的博客 2338

RK3588与FocalTech触摸屏代码适配全解析:从原理到实战

摘要:本文详细介绍了瑞芯微RK3588处理器与FocalTech触摸屏的适配过程,包括硬件特性、驱动加载、设备树配置和常见问题解决方案。RK3588作为8nm工艺的高性能处理器,具备强大的计算能力和丰富的接口资源;FocalTech触摸屏则采用电容式技术,支持I2C/SPI接口。适配关键步骤包括驱动程序加载、硬件连接检查、设备树配置和内核版本兼容性处理,并提供了代码示例和问题排查方法。随着嵌入式设备智能化发展,该适配技术将持续优化,为智能交互提供更优解决方案。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 272

http 默认超时时间_NodeJS创建HTTP、HTTPS服务器与客户端

来源 |https://blog.youkuaiyun.com/ligang2585116/article/details/72827781超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。其属于下图七层网路协议的“应用层”。H...

weixin_39960793的博客 1137

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

NodeJS的Http客户端模块

http.request(options[, callback]) options protocol string 使用的协议。默认为 http:。 host string 请求发送至的服务器的域名或 IP 地址。默认为 localhost。 hostname string host 的别名。为了支持 url.parse(),hostname 优先于 host。 family number 当解析 host 和 hostname 时使用的 IP 地址族。 有效值是 4 或 6。当未指定时,则同时使用 I

qq_36801250的博客 892

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

nodejs中http协议的客户端请求

nodejs中客户端请求主要两种方式get和post get例子 var http = require('http'); http.get("http://10.10.10.10/index.html?key=aaadd222&crytoResult=2232jjfrkkkkkk", function(res) {      console.log("Got response: " + r

Pursudu的专栏 1548

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

NodeJs 之 HTTP服务器与客户端

  Node.js标准库提供了http模块,其中封装了一个高效的HTTP服务器和一个简易的HTTP客户端。http.Server是一个基于事件的HTTP服务器,它的核心由Node.js下层C++部分实现,而接口由Javascript封装,兼顾了高性能与简易性。http.request则是一个HTTP客户端工具,用于向HTTP服务器发起请求,例如实现Pinkback或者内容抓取。 ...

dimigua4451的博客 306

nodejs 创建http客户端

1、代码 2、扩展

淘浩哥的专栏 3304

NodeJS http Client

使用服务器地址作为参数来构造一个HTTP client, 其返回的句柄可用来发出一个或者多个请求。根据连接的服 务器不同, 这个客户端可以 1. 使用管道处理机制来处理请求 2. 每个请求重新构建stream 当前的实现方式并没有用管道处理机制处理请求.Example of connecting to google.com:var http = require('http'); var g

夏天不能盖被子 3329

nodejs使用http客户端发送请求

这里使用一个第三方模块,needle,其使用方式比nodejs自带的http模块好用。 package.json依赖: "dependencies": { "needle": "^2.5.0" } 使用方式: 在文件头部引用模块 const needle = require('needle') GET请求 // 请求参数,json格式 const allParams = { name: 'jim' } needle.request('GET',url, allParams, { //

axe的专栏 6486

node制作http服务器,NodeJS搭建HTTP服务器的实现步骤

前言在 NodeJS 中用来创建服务的模块是 http 核心模块,本篇就来介绍关于使用 http 模块搭建 HTTP 服务器和客户端的方法,以及模块的基本 API。HTTP 服务器1、创建 HTTP 服务器在 NodeJS 中,创建 HTTP 服务器可以与 net 模块创建 TCP 服务器对比,创建服务器有也两种方式。方式 1:const http = require("http");const ...

weixin_28872105的博客 557

node制作http服务器,NodeJS 搭建 HTTP 服务器

前言在 NodeJS 中用来创建服务的模块是 http 核心模块,本篇就来介绍关于使用 http 模块搭建 HTTP 服务器和客户端的方法,以及模块的基本 API。HTTP 服务器1、创建 HTTP 服务器在 NodeJS 中,创建 HTTP 服务器可以与 net 模块创建 TCP 服务器对比,创建服务器有也两种方式。方式 1:const http = require("http");const ...

weixin_32795427的博客 628

NodeJS创建HTTP、HTTPS服务器与客户端

来源 |https://blog.youkuaiyun.com/ligang2585116/article/details/72827781超文本传输协议(HTTP,HyperTe...

web前端开发 564

nodejs http 发送到php,nodejs作为客户端发送请求

nodejs不只是可以作为服务端响应客户端的请求,还可以作为客户端向其他服务端发送请求。例如一些第三方敏感数据的操作,就可以用nodejs作为中转。nodejs内置http/https模块,一方面用于搭建服务,另外也提供了作为客户端请求的方法,注意:访问http服务用http模块,方位https服务用https模块,接下来以http作为演示:http.get()var http=require("...

weixin_29144993的博客 252

Nodejs创建http客户端及代理服务器

nodejs除了可以通过http模块创建服务器,还能创建客户端,类似于浏览器那样很轻松的去向别的服务器发送请求并获取响应数据。 在http模块中,可以使用request方法实现向其他服务器请求数据:http.request( options, callback )。 在request方法中可以使用两个参数,options参数值是一个对象或字符串,用于指定请求的目标URL地址,如果参数值是一个字符串...

一期一会的博客 2224

nodejs客户端如何向服务器发起http请求以及响应

http.createServer( function (request, response) {}).listen(8080); createServer 方法 可以创建一个客户端和服务器端响应请求。 function 回调函数处理的就是 接收过程。 request 就是 所有请求信息 response 所有响应信息 listen 方法 监听端口 //index.html页面 <lin...

gfei1234的博客 2892
上一篇: nodejs-模块
下一篇: nodejs npm 命令教程
devil13th
博客等级 码龄19年 3粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值