nodejs使用http客户端发送请求

这里使用一个第三方模块,needle,其使用方式比nodejs自带的http模块好用。

package.json依赖:

"dependencies": {
    "needle": "^2.5.0"
  }

使用方式:

在文件头部引用模块

const needle = require('needle')

GET请求

// 请求参数,json格式
const allParams = { name: 'jim' }
needle.request('GET',url, allParams, {
    // 设置header
    headers: {}
}, function(error, response) {
    // 成功
    if (!error && response.statusCode === 200) {
       console.log(response.body)
    }
});

needle.request()函数完整参数列表如下:

needle.request(method, url, data[, options][, callback])

  • method:请求方式,即GET,POST
  • url:请求url
  • data:请求参数
  • options:设置项,用来设置header等信息
  • callback:请求回调函数

POST表单提交

// 请求参数,json格式
const allParams = { name: 'jim' }
needle.request('POST',url, allParams, {
    // 设置header
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}, function(error, response) {
    // 成功
    if (!error && response.statusCode === 200) {
       console.log(response.body)
    }
});

POST发送JSON

// 请求参数,json格式
const allParams = { name: 'jim' }
needle.request('POST',url, allParams, {
    // 指定这一句即可
    json: true
}, function(error, response) {
    // 成功
    if (!error && response.statusCode === 200) {
       console.log(response.body)
    }
});

在配置项指定json: true,needle会认为是发送json请求,自动设置header中的Content-Type为application/json

POST 文件上传

// 请求参数,json格式
const allParams = { 
    name: 'jim',// 普通表单参数
    // 上传文件
    file1: { file: 'D:/aaa/bbb.txt', content_type: 'application/octet-stream' }, 
    file2: { file: 'D:/aaa/ccc.png', content_type: 'application/octet-stream' } 
}
needle.request('POST',url, allParams, {
    // 指定这一句即可
    multipart: true
}, function(error, response) {
    // 成功
    if (!error && response.statusCode === 200) {
       console.log(response.body)
    }
});

在配置项指定multipart: true,表示需要上传文件。

file1: { file: 'D:/aaa/bbb.txt', content_type: 'application/octet-stream' }

这部分是指定上传的文件,其中file1表示上传文件表单名称,里面的file表示文件路径,后面的content_type可固定这么写。

以上四种请求方式已满足大部分使用场景,更多使用方式参考:needle

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值