我的简单HTTP请求导致NodeJS中有400个状态代码

时间:2016-04-02 11:29:02

标签: javascript node.js http request

我正在尝试在SoundCloud上按名称访问特定的个人资料,但我总是得到400状态代码。我做错了什么?

这是我的代码。

var request = require('request');
request('https://soundcloud.com/lifeofdesiigner', function (err, response) {
  console.log(response.statusCode, response.headers);
});

这是我的输出。

400 {
      'cache-control': 'private, max-age=0',
      'content-type': 'text/html',
       date: 'Sat, 02 Apr 2016 11:25:08 GMT',
       server: 'am/2',
      'set-cookie': [ 'sc_anonymous_id=473227-393077-384395-502205; path=/; expires=Tue, 31 Mar 2026 11:25:08 GMT; domain=.soundcloud.com' ],
       via: 'sssr',
      'x-frame-options': 'SAMEORIGIN',
      'content-length': '15054',
       connection: 'close'
}

修改:我尝试使用curl进行相同操作,并使用200状态代码和请求的资源获得了正确的响应。它只适用于NodeJS的httprequest模块。

1 个答案:

答案 0 :(得分:1)

console.log(err)将为null,

如果你喜欢这样,

var request = require('request');
request('https://soundcloud.com/lifeofdesiigner', function (err, response, body) {
    console.log(err)
    console.log(response.statusCode, response.headers);
    console.log(body);
});

首先将log记录为null,第二次记录,soundcloud服务器正在响应400,因为它无法找到cookie,第三个记录将是html文件。