【问题标题】:How to make a get request in nodejs如何在nodejs中发出get请求
【发布时间】:2019-05-05 09:58:38
【问题描述】:

我正在尝试发出获取请求以使用户在我的服务器上的频道中在线,但我总是接收我服务器的所有用户。

我使用过请求模块,但它不起作用,似乎它没有在请求时传递参数“_id”

卷曲

curl -s -G \
          -H "X-Auth-Token: Qv5vMPB_6aMCSv5ayQAbQCXkSsBzra_K6BbAqc7S0Fr" \
          -H "X-User-Id: 34YYb2cqqDaFz53ib" \
          -H "Accepts: application/json" \
          --data-urlencode 'query={"_id": "FC77kqfNrH39wEaKG"}' \
          http://localhost:3001/api/v1/channels.online

我专家的结果

{
  "online": [
    {
      "_id": "D539dgygpWrYrNyFz",
      "username": "tranhoang"
    },
    {
      "_id": "34YYb2cqqDaFz53ib",
      "username": "mybot"
    }
  ],
  "success": true
}

代码使用请求模块

var request = require('request');

var headers = {
    'X-Auth-Token': 'Qv5vMPB_6aMCSv5ayQAbQCXkSsBzra_K6BbAqc7S0Fr',
    'X-User-Id': '34YYb2cqqDaFz53ib',
    'Accepts': 'application/json'
};

var options = {
    url: 'http://localhost:3001/api/v1/channels.online',
    headers: headers,
    form: {
        query: '{"_id": "FC77kqfNrH39wEaKG"}'
    }
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
        console.log(response);
    }
}

request(options, callback);

结果

{
  "online": [
    {
      "_id": "D539dgygpWrYrNyFz",
      "username": "tranhoang"
    },
    {
      "_id": "34YYb2cqqDaFz53ib",
      "username": "mybot"
    },
    {
      "_id": "DkiEXfaXRA5EffnHb",
      "username": "sp2"
    }
  ],
  "success": true
}

sp2 没有加入表单中带有“_id”的频道,我该怎么办,请帮帮我!!

【问题讨论】:

  • query 属性不应该是一个对象,而不是一个字符串吗?无论如何,这就是它的文档所说的:npmjs.com/package/request#user-content-forms
  • 我尝试过表单:{ _id: "FC77kqfNrH39wEaKG" },但没有任何改变!!

标签: node.js http curl parameters request


【解决方案1】:

要使用request 模块在Node.js 中发出HTTP GET 请求,您不需要options 对象中的form。相反,options 中的qs 是正确的选择。

代码如下:

var request = require('request');

var headers = {
  'X-Auth-Token': 'Qv5v...S0Fr',
  'X-User-Id': '34YY...53ib',
  'Accepts': 'application/json'
};

var options = {
  uri: 'http://localhost:3001/api/v1/channels.online',
  headers: headers,
  qs: {
    query: {"_id": "FC77kqfNrH39wEaKG"}
  },
  method: 'GET'
};

function callback(error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body);
    console.log(response);
  }
}

request(options, callback);

【讨论】:

    猜你喜欢
    • 2018-08-25
    • 2019-11-09
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 2016-11-08
    • 2019-09-01
    • 2016-09-30
    • 2012-06-28
    相关资源
    最近更新 更多