Nodejs Post请求报socket hang up错误的解决办法

参考nodejs官网发送http post请求的方法,实现了一个模拟post提交的功能。实际使用时报socket hang up错误。

后来发现是请求头设置的问题,发送选项中需要加上headers字段信息(这个估计也和对方的服务器有关,对于不完成的post请求头,可能被丢弃了)。

完整的代码如下(遇到类型问题的同学可以做个参考):

复制代码 代码如下:

var querystring = require('querystring')
  , http = require('http');

var data = querystring.stringify({
  info:'hi',
  test:5
});

var opt = {
  hostname:'www.test.com',
  port :9094,
  path:'/perationSqlQuery',
  method: 'POST',
  headers: {  
    'Content-Type':'application/x-www-form-urlencoded',
    'Content-Length': data.length 
  }
};

var req = http.request(opt, function (res) { 
  res.on('data', function (data) {
    console.log(data.toString());
  });
});
req.on('error', function(e) {
  console.log('problem with request: ' + e.message);
});
req.write(data);
req.end();

时间: 2014-09-22

轻松创建nodejs服务器(10):处理POST请求

目前为止,我们做的服务器没有实际的用处,接下来我们开始实现一些实际有用的功能. 我们要做的是:用户选择一个文件,上传该文件,然后在浏览器中看到上传的文件. 首先我们需要一个文本区(textarea)供用户输入内容,然后通过POST请求提交给服务器. 我们在start事件处理器里添加代码,requestHandlers.js修改如下: 复制代码 代码如下: function start(response) {  console.log("Request handler 'start' was ca

Nodejs 发送Post请求功能(发短信验证码例子)

直接上代码 sms.js var http = require('http'); var querystring = require('querystring'); function SmsCode() { //发短信 this.send = function (req0, res0) { var code = "3212"; var txt = "您的验证码是:"+code+".请不要把验证码泄露给其他人.如非本人操作,可不用理会!"; var

Nodejs下用submit提交表单提示cannot post错误的解决方法

<span style="font-size:18px;"><form action="/registOK" method="get"> <p>用户名:<input type="text" id="userName" name="userName"></p> <p>密码:<input type="pa

nodejs实现HTTPS发起POST请求

准备用nodejs搞一个快速注册163邮箱的东西,需要在某一步的时候post数据到https,node的官方文档实在太简陋了,网上找了个差不多的例子,拿来改了改用. var util = require('util'), https = require('https'); var regUrl = "https://ssl.mail.163.com/regall/unireg/call.do;jsessionid=%s?cmd=register.start&adapter=%s&

Nodejs--post的公式详解

HTML页面内容 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="http://127.0.0.1/dopost" method="post">

NodeJS自定义模块写法(详解)

如下所示: //1.创建测试模块js文件(我这里命名为test.js) //2.添加测试方法 function test(){ console.log('Test Success!'); } //3.公开该方法到node模块 //exports.test(这个是public的方法名,外部调用的时候,使用这个方法名) exports.test = test; //4.测试(在另一个js文件中引入这个模块,并调用对应测试函数,两个js文件在同一目录下) const testModule = requ

PHPStorm 2020.1 调试 Nodejs的多种方法详解

捣鼓nodejs的调试时踩了一堆坑,看了看国内好多教程有点年分了,重新记录下 环境就是PHPSTORM2020.1 首先安装nodejs 然后在phpstorm中edit configuration 第一种方法: Node parameters 不要有任何东西,JS文件和工作目录填自己的 然后直接Debug: 需要有最后一句话 Debugger attached,并且调试器显示已经连接 第二种方法: Node parameters加上 --inspect 参数(或–debug 见下图),需要另外

NodeJS中Buffer模块详解

一,开篇分析 所谓缓冲区Buffer,就是 "临时存贮区" 的意思,是暂时存放输入输出数据的一段内存. JS语言自身只有字符串数据类型,没有二进制数据类型,因此NodeJS提供了一个与String对等的全局构造函数Buffer来提供对二进制数据的操作.除了可以读取文件得到Buffer的实例外,还能够直接构造,例如: 复制代码 代码如下: var buffer = new Buffer([ 0x68, 0x65, 0x6c, 0x6c, 0x6f ]) ; Buffer与字符串类似,除了

Nodejs中的this详解

以下内容都是关于在nodejs中的this而非javascript中的this,nodejs中的this和在浏览器中javascript中的this是不一样的. 在全局中的this console.log(this); {} this.num = 10; console.log(this.num); 10 console.log(global.num); undefined 全局中的this默认是一个空对象.并且在全局中this与global对象没有任何的关系,那么全局中的this究竟指向的是谁

PHPStorm中如何对nodejs项目进行单元测试详解

安装必要的包 nodejs的单元测试最常用的是使用mocha包.首先确保你本地安装nodejs,之后按照mocha包. npm install mocha -g 然后还需要安装相关的断言工具,Node.js中常用的断言库有: assert: TDD风格 should: BDD风格 expect: BDD风格 chai: BDD/TDD风格 使用npm install安装这些断言库其中之一即可. PHPStorm配置nodejs单元测试环境 在PHPStorm中选择菜单:Run -> Edit C

独立部署小程序基于nodejs的服务器过程详解

前言 完全自定义的部署小程序服务器, 不依托于腾讯云服务器体系. 以阿里云服务器为基础建立. 服务器语言选用nodejs. 目的 实现https基本访问请求 实现会话管理 实现socket长连接 一个基于socket的小游戏 源代码在这里: 基础要求 有一台服务器(在外网能访问的服务器) 有一个已经备案的域名(必须备案) 有一个已经申请的https证书域名(二级即可) 客户端代码: 我的实验环境: 服务器:阿里云云服务器ecs 备案域名: 9z9z.vip https证书(ca证书): (免费型

Nodejs libuv运行原理详解

前言 这应该是Nodejs的运行原理的第7篇分享,这篇过后,短时间内不会再分享Nodejs的运行原理,会停更一段时间,PS:不是不更,而是会开挖新的坑,最近有在研究RPG Maker MV,区块链,云计算,可能会更新一些相关文章,或者相关教学. 回到正题,异步编程的难点在于请求与响应不是按顺序发生的.以http server 为例,异步编程赋予了server 高并发的品质,而且他可以以很小的资源代价,不断地接受和处理请求.但是快速处理请求不表示快速地返回请求=>高并发不等同于快速反馈. 在Nod

nodeJs内存泄漏问题详解

之前一次偶然机会发现,react 在server渲染时,当NODE_ENV != production时,会导致内存泄漏.具体issues: https://github.com/facebook/react/issues/7406 .随着node,react同构等技术地广泛运用,node端内存泄漏等问题应该引起我们的重视.为什么node容易出现内存泄漏以及出现之后应该如何排查,下面通过一个简单的介绍以及例子来说明. 首先,node是基于v8引擎基础上,其内存管理方式与v8一致.下面简单介绍v8

python的几种矩阵相乘的公式详解

1. 同线性代数中矩阵乘法的定义: np.dot() np.dot(A, B):对于二维矩阵,计算真正意义上的矩阵乘积,同线性代数中矩阵乘法的定义.对于一维矩阵,计算两者的内积.见如下Python代码: import numpy as np # 2-D array: 2 x 3 two_dim_matrix_one = np.array([[1, 2, 3], [4, 5, 6]]) # 2-D array: 3 x 2 two_dim_matrix_two = np.array([[1, 2]