解决nodejs报错:_http_outgoing.js:722 throw new ERR_INVALID_ARG_TYPE(‘first argument‘, ^TypeError [ERR_IN

❤️砥砺前行,不负余光,永远在路上❤️

前言

nodejs中使用request报错:_http_outgoing.js:722 throw new ERR_INVALID_ARG_TYPE(‘first argument’, TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer or Uint8Array. Received an instance of Object

在这里插入图片描述

一、解决办法

给参数body转为json字符串就行,要注意自己传的参数是json还是object 上边那个 json 是true 还是false 可能也有影响。
在这里插入图片描述

二、nodejs中request 三种请求方式

var request = require('request');
/* 
  url:请求路径
  method:请求方式
  data:参数
  isForm:是否是表单格式
*/
const requests =  (url, method = 'POST', data, isForm = false) => {
  return new Promise((resolve, reject) => {
    if (method == 'GET') {
      /* 一般GET请求 */
      request({ url, method: 'GET', qs: data }, function (error, response, body) {
        if (!error && response.statusCode == 200) {
          console.log(body) // 请求成功的处理逻辑
          resolve(body)
        } else {
          reject(error)
        }
      });
    } else {
      /* 提交form表单 */
      if (isForm) {
        request.post({ url, form: data }, function (error, response, body) {
          if (!error && response.statusCode == 200) {
            console.log(body) // 请求成功的处理逻辑
            resolve(body)
          } else {
            reject(error)
          }
        })
      } else {
        console.log('一般POST')
        /* 一般POST请求 */
        request({
          url, method: "POST", json: false,
          headers: {
            "content-type": "application/json",
          },
          body: JSON.stringify(data)
        }, function (error, response, body) {
          if (!error && response.statusCode == 200) {
            console.log(body) // 请求成功的处理逻辑
            resolve(body)
          } else {
            reject(error)
          }
        });
      }
    }
  })
}

module.exports = requests;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

codernmx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值