2014-09-22 215 views
2

我有一些代码试图从Soundcloud API获取JSON结果。从服务器端发出HTTP请求

我注册了一个应用程序,得到了客户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中使用相同的URL时,我得到正确的JSON信息。如何正确地从服务器端脚本进行此调用?

回答

5

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

+0

+1。一直使用它 – rossipedia 2014-09-22 00:31:44

+0

奇怪的是,我试图让这个特殊功能工作时,广泛地使用请求并完全消隐。感谢提醒:) – opticon 2014-09-22 00:47:40

-1

今天我更新了我自己的NodeJS API的封装软件包的SoundCloud,这可以在这里找到:https://www.npmjs.com/package/soundcloud-nodejs-api-wrapper

它做服务器端API通信,其中包括数据修改。没有用户弹出窗口和重定向url是必要的。

我还没有在NodeJS中发现任何其他支持这个的包。

+0

这不是“如何钓鱼?”,在我眼中的答案。这是“这里是鱼,享受你的用餐”。 – PypeBros 2016-10-10 09:25:25