【问题标题】:node.js + request => response showing junk responsenode.js + request => 显示垃圾响应的响应
【发布时间】:2019-12-04 14:28:44
【问题描述】:

我正在使用 node.js + 请求将 HTTP 请求发送到 URL。我需要 JSON 响应,但我得到了垃圾字符。

这是我的 node.js 代码

var request = require('request');
var post_data = { UserName: "xxxxx", Password: "xxxxx" };

var post_options = {
  url: 'http://xxxxxxx.info/api/CoreUser/cognitoLogin',
  method: 'POST',
  form: post_data,
  headers: {
    'AppID': 'zNiphaJww8e4qYEwJ96g555HTAAbAXdj',
    'OAuth': 'xxxxxxxxxxxxxxxxxx',
    //'User-Agent': 'Super Agent/0.0.1',
    'Content-Type': 'application/json;charset=UTF-8',
  }
};
// Set up the request
request(post_options, function (error, response, body) {
  console.log(response.statusCode);
  if (!error && response.statusCode == 200) {
    console.log("200");
    console.log(response);

  }
});

但我收到了垃圾字符的回复。

我需要 JSON 格式的结果,这个请求有什么问题?

【问题讨论】:

    标签: node.js http request


    【解决方案1】:

    您在请求调用中缺少{ json: true }

    request(post_options, { json: true }, function (error, response, body) {
      console.log(response.statusCode);
      if (!error && response.statusCode == 200) {
        console.log("200");
        console.log(response);
    
      }
    });
    

    【讨论】:

      【解决方案2】:

      我发现了问题,原因是 API 响应以 gZip 格式发送。这是我们必须在这里做出的改变。只需启用gzip: true 即可解决问题。

      var request = require('request');
      var post_data = { UserName: "xxxxx", Password: "xxxxx" };
      
      var post_options = {
        url: 'http://xxxxxxx.info/api/CoreUser/cognitoLogin',
        method: 'POST',
        gzip: true,
        form: post_data,
        headers: {
          'AppID': 'zNiphaJww8e4qYEwJ96g555HTAAbAXdj',
          'OAuth': 'xxxxxxxxxxxxxxxxxx',
          //'User-Agent': 'Super Agent/0.0.1',
          'Content-Type': 'application/json;charset=UTF-8',
        }
      };
      // Set up the request
      request(post_options, function (error, response, body) {
        console.log(response.statusCode);
        if (!error && response.statusCode == 200) {
          console.log("200");
          console.log(response);
      
        }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-12
        • 1970-01-01
        • 2019-09-14
        • 1970-01-01
        • 2013-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多