2014-09-22 205 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