Nodejs 发起http请求(客户端 get post put delete)

Nodejs本身自带的http模块可以支持get和post 操作,但没有找到put操作。
本文档使用的是request模块实现。主要用于测restfulAPI客户端使用。

文章目录

    • 1 HTTP方法的基本概念
    • 2 GET
    • 3 POST
    • 4 PUT
    • 5 Delete

request模块文档:https://www.npmjs.com/package/request
使用前请引入request模块

1 HTTP方法的基本概念

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,增,改,删4个操作。

2 GET

从服务器取出资源(一项或多项)
GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连

如果要在query部分带参数 (包括PUT POST DELETE)
如:

http://www.helloworld.com/messages/topic3?/messages/topic3?cmd=event&uid=A15C2DB&img=1

均需要使用qs模块进行处理:

const qs = require('querystring');
let options = {
    url: 'http://www.helloworld.com/messages/topic3?' + qs.stringify({cmd: "event",uid:"A15C2DB", img:1})
};

nodejs code:

var request = require("request");
var options = {
    url:'http://www.baidu.com'
    // url: 'https://api.some-server.com/',
    // agentOptions: {
    //     cert: fs.readFileSync(certFile),
    //     key: fs.readFileSync(keyFile),
    //     passphrase: 'password',
    //     securityOptions: 'SSL_OP_NO_SSLv3'
    // }
};

request.get(options, function(err, response, body){
    console.info(response.body);
});

3 POST

在服务器新建一个资源。
POST把提交的数据则放置在是HTTP包的包体中。
nodejs code:

 var request = require("request");
 var options = {
        url: url,
       	qs : {//query
       		id: 20190929T060801Z
        },
        headers:{
            device:"asdfasdfaadfasdf"
        },//req.headers
        form: {// form-data
            deviceid:"xxxxxxx",
            handle:"12331242134",
            name:"Cindy_Crawford_0002.jpg",
            filepath:"http://xxxxxxxx.us-east-1.amazonaws.com/jwli/001.jpg"
        }  //req.body
        // body: filedata   // bin data
    };

    request.post(options, function(error, response, body) {
        console.info('response:' + JSON.stringify(response));
        console.info("statusCode:" + response.statusCode)
        console.info('body: ' + body );
    });

4 PUT

在服务器更新资源(客户端提供改变后的完整资源)
nodejs code:

   var request = require("request");
   var options = {
        url: 'http://xxxxxxxx.s3.us-east-1.amazonaws.com' +s3_path,// ,
        headers: { 
            host: 'jwlipirtest.s3.amazonaws.com', 
            'x-amz-content-sha256':'UNSIGNED-PAYLOAD',
            'x-amz-date':date,
            Authorization: result
        },
        body:bitmap
    };

    request.put(options, function(error, response, body) {
        console.info('response:' + JSON.stringify(response));
        console.info("statusCode:" + response.statusCode)
        console.info('body: ' + body );
    });

5 Delete

从服务器删除资源。
nodejs code:

var request = require("request");

var options = {
    url:'http://172.28.28.4:3017/files/testhttp',
	headers:{
		uid:"xxxxxxxx"
	},
	form:{
		target:"/user/one"
	}//req.body
};

request.del(options, function(err, response, body){
    console.info(response.body);
});

你可能感兴趣的:(nodejs,网络)