从服务器端发出HTTP请求

时间:2014-09-22 00:26:15

标签: javascript node.js soundcloud

我有一些代码试图从Soundcloud API获取JSON结果。

我注册了一个应用,获得了客户端ID等等,我试图像这样打电话:

var querystring = require('querystring');
var http = require('http');

var addr = 'http://api.soundcloud.com/resolve.json?url=http://soundcloud.com/matas/hobnotropic&client_id=XXXXX';

var options = {
    hostname: "api.soundcloud.com",
    path: "/resolve.json?url=http://soundcloud.com/matas/hobnotropic&client_id=XXXXXx",
    method: "GET",
    headers: {
        "Content-Type": "application/json"
    }
}

var request = http.get(options, function(response) {
    response.setEncoding('utf8');
    response.on('data', function(chunk) {

        console.log(chunk);
    });
});

这会产生如下结果:

{"status":"302 - Found","location":"https://api.soundcloud.com/tracks/49931.json?client_id=xxxx"}

当我在Chrome中使用相同的网址时,我会获得正确的JSON信息。如何从服务器端脚本正确地进行此调用?

2 个答案:

答案 0 :(得分:5)

内置的http客户端无法处理重定向。但是request具有许多其他功能,内置客户端不支持开箱即用。

答案 1 :(得分:-1)

今天我为Soundcloud更新了自己的NodeJS Api-Wrapper包,可以在这里找到:https://www.npmjs.com/package/soundcloud-nodejs-api-wrapper

它执行服务器端API通信,其中包括数据修改。没有用户弹出窗口和重定向网址。

我还没有找到任何其他在NodeJS中支持此功能的软件包。