应用场景:
1.VsCode插件开发(主要针对以javascript为主的vscode插件);
2.使用Node.js开发的客户端程序

Node.js之http请求(客户端)

代码示例如下:

var http = require('http');  

var qs = require('querystring');  

var userCode = "";

var post_data = {
userCode: userCode};//这是需要提交的数据 var content = qs.stringify(post_data); var options = {
hostname: 'www.test.com',
port: ,
path: '/test-web/api/sysUser/getUserCodeByInfo',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
}; var req = http.request(options, function (res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk); var data = JSON.parse(chunk);
console.log(data.returnCode);
});
}); req.on('error', function (e) {
console.log('problem with request: ' + e.message);
}); // 将数据写入请求体
req.write(content);//注意这个地方 req.end();

Node.js之https请求(客户端)

代码示例如下:

var querystring = require('querystring');

const https = require("https");
var userCode = "";
var post_data = { userCode: userCode }
var contents = querystring.stringify(post_data); var options = {
hostname: "www.test.com",
port: , //
path: "/test-web/api/sysUser/getUserCodeByInfo?"+contents ,
method: "POST",
rejectUnauthorized: false,
headers: {
Accept: "*/*",
"Accept-Encoding": "utf-8",
"Accept-Language": "zh-CN,zh;q=0.8",
Connection: "keep-alive",
Host: "www.test.com"
}, };
var mData = '';
var req = https.request(options, function (res) {
res.setEncoding('utf-8'); res.on('data', function (chunk) {
var data = JSON.parse(chunk);
console.log('BODY: ' + data);
});
});
// req.write(contents);
req.on("error", function (e) {
console.error("====================================================" + e);
});
req.end();

上面的hostname,如果不是域名修改为ip地址,请修改成这样,将www.test.com改为192.168.126.130,切不可指定为http://192.168.126.130,
否则会出现请求失败,主要体现为如下错误:

还有一点需要强调,如果参数不用querystring.stringify()包裹的话,会出现如下错误:

Request path contains unescaped characters

那么为什么需要querystring呢?
因为querystring.stringify()能将对象序列化成URL的形式,以&进行拼接。

node.js之客户端发起https和http请求的更多相关文章

  1. Node.js 0.12: 正确发送HTTP POST请求

    Node.js 0.12: 正确发送HTTP POST请求 本文针对版本:Node.js 0.12.4 之前写过一篇Node.js发送和接收HTTP的GET请求的文章,今天再写一篇,讲发送POST的请 ...

  2. nginx反向代理node.js获取客户端IP

    使用Nginx做node.js程序的反向代理,会有这么一个问题:在程序中获取的客户端IP永远是127.0.0.1 如果想要拿到真实的客户端IP改怎么办呢? 一.首先配置Nginx的反向代理 proxy ...

  3. node.js 获取客户端信息

    结果:

  4. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ HTTP请求

    POST/GET请求--常见请求方式处理

  5. Node.js使用Express实现Get和Post请求

    var express = require('express'); var app = express(); // 主页输出 "Hello World" app.get('/', ...

  6. Node.js 部署免费/自动续订 HTTPS

    随着互联网快速发展,互联网信息安全越来越受到大家重视,HTTPS 应该是近两年各大厂商都在尽力普及的技术之一.国内大厂基本上已经全面普及了 HTTPS. 本文首发于我的个人网站:听说 - https: ...

  7. Node.js中的HTTPS示例

      需要openssl的支持, openssl本身不提供windows的安装程序,可以按照如下的步骤进行安装: (参考https://conetrix.com/Blog/how-to-install- ...

  8. Node.js实战(一)之概述

    , 一.Node.js介绍 Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进 ...

  9. Node.js Learning Notes

    简介 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务 ...

随机推荐

  1. 【开发工具】 - win10设置path变量怎样列表展示?

    如果你的变量值以%开头,打开编辑的时候就会显示一串的变量值,不方便查找编辑. 所以将变量值更改为以盘符开始,就可以解决这个问题,比如:D:\apache-maven-3.6.1\bin\

  2. 【转载】sqlserver中小数类型float和deciaml类型比较

    在sqlserver数据库中,float类型和double类型都可以用来表示小数类型,float类型是一种近似数值的小数类型,而decimal类型则是精确数值的小数类型.如果需要在sqlserver数 ...

  3. EasyPOI导入导出Excel

    EasyPOI工具可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 导入maven依赖 <dependency> <group ...

  4. echarts Y轴名称显示不全(转载)

    转载来源:https://blog.csdn.net/qq8241994/article/details/90720657今天在项目的开发中遇到的一个问题,echarts Y轴左侧的文字太多了,显示不 ...

  5. MySQL Replication--TABLE_ID与行格式复制

    BINLOG中的TABLE_ID 在ROW格式的二进制中,事件信息中没有列的信息,需要通过Table_Map将表名对于的表信息加载到cache中,然后根据事件信息中的列下标来定位到数据列,每次表信息加 ...

  6. 洛谷 P2921 在农场万圣节Trick or Treat on the Farm题解

    题意翻译 题目描述 每年,在威斯康星州,奶牛们都会穿上衣服,收集农夫约翰在N(1<=N<=100,000)个牛棚隔间中留下的糖果,以此来庆祝美国秋天的万圣节. 由于牛棚不太大,FJ通过指定 ...

  7. 使用Xpath爬虫库下载诗词名句网的史书典籍类所有文章。

    # 需要的库 from lxml import etree import requests # 请求头 headers = { 'User-Agent': 'Mozilla/5.0 (Windows ...

  8. 与你一起学习MS Project——高级篇:Project高级应用

    我们再来看Project的一些高级应用. 一.设置任务依赖性的几种方法 首先是设置任务依赖性的几种方法,这里介绍三种方法. 方法一:选中两个需要建立依赖型的任务.选中用 ctrl 鼠标左键 的方式即可 ...

  9. ccf算法模板

    bellman ford 算法求最短路径 #include <iostream> using namespace std; ; ; // 边, typedef struct Edge{ i ...

  10. 05-Flutter移动电商实战-dio基础_引入和简单的Get请求

    这篇开始我们学习Dart第三方Http请求库dio,这是国人开源的一个项目,也是国内用的最广泛的Dart Http请求库. 1.dio介绍和引入 dio是一个强大的Dart Http请求库,支持Res ...