美文网首页
nodejs作为客户端发送请求

nodejs作为客户端发送请求

作者: Veb | 来源:发表于2018-06-29 18:29 被阅读0次

nodejs不只是可以作为服务端响应客户端的请求,还可以作为客户端向其他服务端发送请求。例如一些第三方敏感数据的操作,就可以用nodejs作为中转。

nodejs内置http/https模块,一方面用于搭建服务,另外也提供了作为客户端请求的方法,注意:访问http服务用http模块,方位https服务用https模块,接下来以http作为演示:

http.get()

var http=require("http");

http.get("http://py.amazingtm.com/index.php?keyword=veblen&keytype=0",function(data){
    var str="";
    data.on("data",function(chunk){
        str+=chunk;//监听数据响应,拼接数据片段
    })
    data.on("end",function(){
        console.log(str.toString())
    })
})

有同学觉得,拼接参数的方式不够优雅,那么可以使用 querystring模块的stringify方法进行转换,下面会有演示。

http.request() --get

var http = require('http');  
  
var qs = require('querystring');  
  
var data = {  
    a: 123,  
    time: new Date().getTime()};//这是需要提交的数据  
  
  
var content = qs.stringify(data);  
  
var options = {  
    hostname: '127.0.0.1',  
    port: 10086,  
    path: '/pay/pay_callback?' + content,  
    method: 'GET'  
};  
  
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);  
    });  
});  
  
req.on('error', function (e) {  
    console.log('problem with request: ' + e.message);  
});  
  
req.end();  

http.request() --post

var http = require('http');  
  
var qs = require('querystring');  
  
var post_data = {  
    a: 123,  
    time: new Date().getTime()};//这是需要提交的数据  
  
  
var content = qs.stringify(post_data);  
  
var options = {  
    hostname: '127.0.0.1',  
    port: 10086,  
    path: '/pay/pay_callback',  
    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);  
    });  
});  
  
req.on('error', function (e) {  
    console.log('problem with request: ' + e.message);  
});  
  
// 将数据写入请求体
req.write(content);//注意这个地方  
  
req.end();

会发现,略微有些繁琐,nodejs中有一个第三方模块request可以一试

相关文章

  • nodejs作为客户端发送请求

    nodejs不只是可以作为服务端响应客户端的请求,还可以作为客户端向其他服务端发送请求。例如一些第三方敏感数据的操...

  • C# Socket模拟发送接收

    Socket简介 项目结构 客户端项目 SocketClient主要负责作为Socket客户端发起连接请求,并发送...

  • fastapi教程翻译(四):Request Body(请求体)

    一、什么是请求体? 当您需要将数据从客户端(例如浏览器)发送到API时,可以将其作为 “请求体” 发送。 请求体是...

  • Axios

    axios的优势 功能特点: 在浏览器发送XMLHttpRequest请求 在nodejs中发送http请求 支持...

  • HTTPS具体过程,7次握手,以及如何防止中间人攻击的

    三次握手 客户端向服务器发送SYN请求服务器发送ACK回应请求,并同时发送一个SYN的请求给客户端客户端回应ACK...

  • Http常用方法

    1.Get-》服务器向客户端发送请求 2.post->客户端数据发送服务网关应用程序,客户端发送post 请求给服...

  • 图解HTTP之CH2-简单的HTTP协议

    HTTP协议用于客户端和服务器之间的通信 应用HTTP协议时,总是一端作为客户端发送请求,一端作为服务器响应请求,...

  • HTTP状态码

    100:继续 客户端应当继续发送请求。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。10...

  • 浏览器状态码代表的含义

    100:继续 客户端应当继续发送请求。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。 10...

  • HTTP常用状态码

    100:继续 客户端应当继续发送请求。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。10...

网友评论

      本文标题:nodejs作为客户端发送请求

      本文链接:https://www.haomeiwen.com/subject/elzayftx.html