node.js第11课(HTTP客户端)

Windows 11系统 NEXT.js安装和使用教程 Next.js主要用于构建现代 Web 应用,具有 SSR、SSG 和 CSR 的能力,适用于静态站点、企业级应用、电商等场景。Vue 3更加注重开发者体验,适合快速开发和 SPA 类型的应用,结合 Nuxt.js 后也能支持 SSR。Node.js提供了运行时环境,而Next.js则依赖 Node.js 来实现服务器端渲染和其他功能。 阅读详情


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

 表示请求的参数,callback是请求的回调函数,option常用的参数如下
   host:请求网站的域名或IP地址
   port:请求网站的端口,默认是80,
   method:请求方法,模式是GET/POST
   path:请求的相对于根的路径,默认是"/"。QueryString应该包含在其中,例如/search?query=marico
   headers:一个关联数组对象,为请求头的内容
   callback传递一个参数,为http.ClientResponse的实例
   http.request返回一个http.ClientRequest的实例

   //clientRequest.js
var http=require('http');
var querystring=require('querystring');
//启动服务
http.createServer(function(req,res){
 console.log('请求到来,解析参数');
 var post='';
 req.on('data',function(chunk){
  post+=chunk;
 });
 req.on('end',function(){
  post=querystring.parse(post);
  //解析完成
  console.log('参数解析完成,返回name参数');
  res.end(post.name);
 });
}).listen(3000,'127.0.0.1');

//客户端请求
var contents=querystring.stringify({
 nane:'octopus',
 age:20,
 address:'beijing'
});
var options={
 host:'localhost',
 path:'/',
 port:3000,
 method:'POST',
 headers:{
  'Content-Type':'application/x-www-form-urlencoded',
  'Content-Length':contents.length
 }
};
var req=http.request(options,function(res){
 res.setEncoding('utf-8');
 res.on('data',function(data){
  console.log('后台返回数据');
  console.log(data);
 })
});
req.write(contents);
req.end();
2.http.get(options,callback) http模块还提供了一个更加简便的方法用于处理GET请求:http.get。它是http.request的简化版,
   唯一的区别在于http.get自动将请求方法设为GET请求,同时不需要手动调用req.end();
   实例:clientGet.js
 var http=require('http');
 var url=require('url');
 var util=require('util');

 //启动服务
 http.createServer(function(req,res){
   console.log('请求到来,解析参数');
   var params=url.parse(req.url,true);
   console.log('解析完成');
   console.log(util.inspect(params));
   console.log('向客户端返回');
   res.end(params.query.name);
 }).listen(3000);

 http.get({
   'host':'localhost',
   path:'/user?name=octopus&age=20',
   port:3000},
   function(res){
     res.setEncoding('utf-8');
     res.on('data',function(data){  
       console.log('服务端响应回来的数据为:'+data);
   })
});
二、http.ClientRequest
该对象是由http.request或http.get返回产生的对象,表示一个已经产生而且正在进行的HTTP请求,它提供了response事件,
即http。request或http.get第二个参数制定的回调函数的绑定对象,请求必须调用end方法结束请求。
提供的函数:
   request.abort() 终止正在发送的请求
   request.setTimeout(timeout,[callback]) 设置请求超时时间,timeout为毫秒数,当请求超时后,callback将会被调用
   其它:request.setNoDelay([noDelay])、request.setScoketKeepAlive([enable],[initialDelay])等函数。
   API地址:
http://nodejs.org/api/http.html
三、http.ClientResponse
http.ClientReponse是与http.ServerResponse相似,提供三个事件,data、end和close,分别在数据到达,传输结束和连接结束时触发,
其中data事件传递一个参数chunk,表示接受到的数据
属性,表示请求的结果状态
    statusCode   HTTP状态码,如200,404,500
    httpVersion:HTTP协议版本
    headers:HTTP请求头
    trailers:HTTP请求尾
函数:
response.setEncoding([encoding]):设置默认的编码,当data事件被触发时,数据将以encoding编码。默认值为null,以buffer的形式存储。
response.pause():暂停接受数据和发送事件,方便实现下载功能。
response.resume():以暂停的状态中恢复
 
           

机器学习项目(四)疫情期间网民情绪识别 (一) 疫情期间网民情绪识别 赛题背景 2019新型冠状病毒(2019-nCoV)感染的肺炎疫情发生对人们生活生产的方方面面产生了重要影响,并引发国内舆论的广泛关注,众多网民参与疫情相关话题的讨论。为了帮助政府掌握真实社会舆论情况,科学高效地做好防控宣传和舆情引导工作,本赛题针对疫情相关话题开展网民情绪识别的任务。 数据介绍 训练集 10万条 无标记样本90万条 测试集1万条 数据集依据与“新冠肺炎”相关... 阅读详情

相关推荐

基于C#的软PLC梯形图编辑器开发实战

本文详细介绍了基于C#开发软PLC梯形图编辑器的实战过程。文章从核心数据结构设计入手,阐述了如何利用C#的面向对象特性构建梯形图元素模型,并实现了图形编辑、指令表输入、逻辑连接拓扑重建等关键功能。重点剖析了模拟PLC执行引擎的扫描周期与能流传递算法,让梯形图逻辑在PC上“活”起来。最后探讨了定时器指令实现、性能优化及项目集成等进阶内容,为工业自动化软件集成提供了灵活高效的解决方案。

weixin_28314575的博客 404

Node.js 学习(GET请求)

http.get() http.get(options[, callback]) http.get(url[, options][, callback]) 由于大多数请求都是没有主体的 GET 请求,因此 Node.js 提供了这个便捷的方法。 这个方法与 http.request() 的唯一区别是它将方法设置为 GET 并自动调用 req.end()。 注意,如果没有添加 ‘response’ ...

Lemok的博客 1276

告别Python依赖!用C++编译PaddleOCR打造轻量级本地OCR工具(附模型选择与性能对比)

本文详细介绍了如何将PaddleOCR从Python迁移到C++平台,打造高性能、低资源占用的本地OCR工具。通过对比Python和C++实现的性能差异,展示了C++在冷启动时间、内存占用和部署便捷性上的显著优势。文章还提供了模型选择、编译配置和优化技巧等实用指南,帮助开发者轻松构建轻量级OCR解决方案。

weixin_28717467的博客 256

Node.js的http模块:创建HTTP服务器、客户端示例

要使用http模块,只需要在文件中通过require('http')引入即可。http模块是Node.js原生模块中最为亮眼的模块。传统的HTPP服务器会由Apache、Nginx、IIS之类的软件来担任,但是Node.js并不需要。Node.js的http模块本身就可以构建服务器,而且性能非常可靠。

夏天又到了的专栏 1667

告别时钟树平衡噩梦:在Innovus中巧妙设置stop/ignore pin来优化分段时钟网络

本文深入探讨了在Innovus工具中利用stop/ignore pin优化分段时钟树网络的高阶技巧。针对数字IC后端设计中的时钟树平衡难题,详细解析了特殊引脚属性的战略应用场景和配置方法,帮助工程师有效解决SoC设计中复杂的时钟结构问题,显著提升时序收敛效率。

weixin_30836759的博客 294

Oracle Linux中/var/log/pcp/pmlogger目录膨胀问题分析与解决

本文详细分析了Oracle Linux系统中/var/log/pcp/pmlogger目录异常膨胀的常见原因与解决方案。当PCP性能监控框架的pmlogger服务日志轮转或清理机制失效时,会导致该目录无限增长,威胁系统稳定。文章提供了从服务状态诊断、配置文件审查到安全清理与预防策略的全流程实战指南,帮助运维人员快速回收磁盘空间并恢复服务正常运行。

weixin_29208327的博客 378

最新Node.js安装详细教程及node.js配置

文中主要讲述编译器、运行环境、开发环境的区别,Node.js与JavaScript、TypeScript,Node.js与浏览器,Windows、Linux、Mac的Node.js版本类型,VS Code安装程序的安装及安装选项设置,修改npm的包的全局的安装路径和缓存路径、配置镜像源(镜像站)、配置包管理工具,node.js的运行。

Python基础详解教程,让编程变得简单! 17万+

飞牛fnNAS存储模式RAID 5数据恢复

中介绍了fnNAS存储空间的几个模式,细心的网友应该能感受到,我是非常推崇RAID 5的。但我认为,一般人出现1块硬盘损坏后,就能够赶紧采取处理措施了,再高的容灾等级也无法满足这个用户的需求了。》就完成了飞牛NAS存储空间的说明,包括了如何创建、怎么选择空间模式、RAID 5 硬盘故障后的更换、系统更换/重装后数据盘的恢复等等。在VMware中新建虚拟机,安装好fnNAS后,再向虚拟机添加“已有硬盘”(这就是所谓崩溃虚拟机的数据盘),此时新的fnNAS出现提示。在“选择要添加的硬盘”中,选择刚添加硬盘。

dgnankai的专栏 3011

node.js 详解

node.js 详解

m0_55557411的博客 5万+

华为OD机试 - 打印机队列 - 优先队列(Python/JS/C/C++ 双机位C卷 200分)

这个问题要求模拟打印机的文件调度过程,关键在于正确处理每个打印机队列中的文件优先级和文件进入队列的顺序。优先级处理:每个文件有一个 1 到 10 的优先级,数字越大优先级越高,打印机应首先处理优先级最高的文件。在打印机 1 的队列中插入了 3 个文件,分别有不同的优先级,其中编号 3 的文件优先级最高,先被取出。因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10 不同的 优先级,其中数字越大优先级越高。在打印机 2 的队列中插入了 1 个文件,优先级为 1,因此它被首先取出。

学Java,找哪吒 1079

详解AUTOSAR:DaVinci Configurator导入ARXML配置(拓展篇—2)

DaVinci Configurator导入ARXML配置。

不脱发的程序猿 3335

Request:Node.js中最强大的HTTP客户端库终极指南

Request是Node.js生态中一款简化的HTTP客户端库,曾以其简洁的API设计和强大的功能成为开发者处理HTTP请求的首选工具。尽管该项目已于2020年2月11日正式宣布 deprecated,但了解其核心特性和使用方法对于理解现代HTTP客户端库的设计理念仍具有重要价值。 ## 为什么选择Request? Request库的核心理念是"超级简单易用",它支持HTTPS协议并默认跟随重

gitblog_00589的博客 797

运放实现阶梯波发生器-总结报告

实验目的: 学习、理解、掌握方波电路、限幅电路积分累加电路、反馈电路 课程条件: 电脑仿真软件Multisim 原理框图和实验思路: 方波电路通过微分电路可以形成正负脉冲,在通过限幅电路后变为单脉冲,最后在积分电路中形成阶梯波。微分电路存在的意义就是为了防止方波频率过大,从而导致在经过限幅电路的方波,在一个周期内将电容的电充满,这样就不会产生阶梯波。如果方波的频率比较小,可以近似认为是正负脉冲,这样就可以跳过微分电路。 ...............

0 1万+

Node.js学习(11)----HTTP服务器与客户端

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

weixin_33918357的博客 106

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Undici:Node.js革命性HTTP/1.1客户端,性能超越传统方案289%

你还在为Node.js应用中的HTTP请求性能问题发愁吗?当系统面临高并发请求时,传统HTTP客户端常常成为瓶颈,响应延迟、资源占用过高的问题接踵而至。今天,我们将介绍一款专为Node.js从零打造的HTTP/1.1客户端——Undici,它凭借创新的架构设计,在性能上实现了对传统方案289%的超越,彻底改变Node.js网络请求性能格局。读完本文,你将了解Undici的核心优势、性能提升原理以及

gitblog_00996的博客 875

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Node.js实现WebSocket

node.js实现WebSocket的详细介绍

上庸者-不服周 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

目前最快的 Node.js HTTP 客户端库 Undici 发布 v7 版本!

最初发布于 2018 年的现代 Node.js HTTP 客户端库 —— Undici,在 2024 年取得了显著的增长。下载量从 2023 年的超过 1.89 亿次飙升至 2024 年(1 月至 11 月)的惊人的 4.37 亿次以上,这突显了它在 Node.js 生态系统中的关键作用。今天,Node.js Undici 工作组欣然宣布 Undici v7 的发布。此版本引入了对 fetch()...

我本可以容忍阳光,如果我不曾见过太阳,然而阳光已使我荒凉,成为更新的荒凉。 538

Request.js 终极指南:Node.js HTTP 请求库的完整教程

Request.js 是一个简化的 HTTP 客户端,为 Node.js 开发者提供了直观高效的网络请求解决方案。尽管该项目已在 2020 年 2 月 11 日正式宣布 deprecated,但作为曾经最受欢迎的 Node.js HTTP 请求库之一,其设计理念和使用方式仍然值得学习和借鉴。 ## 快速入门:5 分钟上手 Request.js Request.js 的核心优势在于其极简的 AP

gitblog_01023的博客 428

node http模块搭建简单的服务和客户端

node-http Node.js提供了http模块,用于搭建HTTP服务端和客户端。 创建Web服务器 server.js 1 /** 2 * node-http 服务端 3 */ 4 let http = require('http'); 5 let url = require('url'); 6 let fs = require('fs...

117

Node.js开发-HTTP协议

对于未知的资源类型,可以选择 application/octet-stream 类型,浏览器在遇到该类型的响应时,会对响应体内容进行独立存储,也就是常见的 下载 效果。HTTP 服务可以设置响应头 Content-Type 来表明响应体的 MIME 类型,浏览器会根据该类型决定如何处理资源。http.createServer 里的回调函数的执行时机: 当接收到 HTTP 请求的时候,就会执行。响应体内容的类型是非常灵活的,常见的类型有 HTML、CSS、JS、图片、JSON。请求体内容的格式是非常灵活的,

weixin_46926189的博客 1907

Node.js之HTTP模块学习

HTTP模块介绍: nodejs中的http模块封装了一个http服务器模块和一个简易的http客户端。 http.Server是一个基于事件的http服务器 http.request是http客户端工具,用于向http服务器发起请求 如fs模块一样,需要先引用http模块: var http = require('http'); //读取内置http模块,这个模块提供了ht...

weixin_33910137的博客 174

Node.js简介及基本应用

Node.js简介及基本应用1 Node.js是什么2 为什么要用Node.js3 Node.js应用程序的示例4 Node.js中的npm5 yarn包管理工具6 REPL环境 1 Node.js是什么 传统意义上的javascript运行在浏览器上,这是因为浏览器内核实际上分为两个部分,渲染引擎和javaScript引擎。前者主要负责渲染HTML+CSS,后者主要负责运行javaScript。 Node.js是JavaScript语言的服务器运行环境,JavaScript可以脱离浏览器直接运行。所谓“运

橘猫吃不胖的博客 4988

node中一个基本的HTTP客户端向本地的HTTP服务器发送数据

上一篇讲到了node可以轻松的向其他请求数据. 这一篇就来讲讲向本地服务器的数据交互. HTTP服务器代码,s.js 1 var http=require("http"); 2 var server=...

Wang1996332的博客 222
上一篇: node.js开发平台
下一篇: node.js第十二课(Express框架及入门介绍)
栖息
博客等级 码龄15年 64粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值