2016-10-17 9 views
1

SoundCloud APIを呼び出す際に問題があります。同じサーバーからの同じAPI呼び出しで、CURLリクエストとNodeJsの間で結果が異なります。 2秒以内に次の2回の呼び出しが行われます。当社のサーバー "SiaMusic" からSoundCloud API:同じ呼び出し、カールとNodeJSの異なる応答

コール:curl http://api.soundcloud.com/users/3789802?client_id=MY_CLIENT_ID

応答: "要求" モジュールを使用してNodeJsから{"id":3789802,"kind":"user","permalink":"siamusic","username":"SiaMusic","last_modified":"2016/03/27 21:00:51 +0000","uri":"https://api.soundcloud.com/users/3789802","permalink_url":"http://soundcloud.com/siamusic","avatar_url":"https://i1.sndcdn.com/avatars-000073011508-o3ui3y-large.jpg","country":null,"first_name":"","last_name":"","full_name":"","description":"","city":"","discogs_name":null,"myspace_name":null,"website":"http://siamusic.net/","website_title":"","track_count":204,"playlist_count":23,"online":false,"plan":"Pro Plus","public_favorites_count":1,"subscriptions":[{"product":{"id":"creator-pro-unlimited","name":"Pro Unlimited"}}],"followers_count":137277,"followings_count":0}

コール:

​​

応答:ボディ:{ id: 3789802, kind: 'user', permalink: 'siamusic', username: 'SiaMusic', last_modified: '2016/03/27 21:00:51 +0000', uri: 'https://api.soundcloud.com/users/3789802', permalink_url: 'http://soundcloud.com/siamusic', avatar_url: 'https://i1.sndcdn.com/avatars-000073011508-o3ui3y-large.jpg', country: null, first_name: '', last_name: '', full_name: '', description: '', city: '', discogs_name: null, myspace_name: null, website: 'http://siamusic.net/', website_title: '', track_count: 204, playlist_count: 23, online: false, plan: 'Pro Plus', public_favorites_count: 1, subscriptions: [ [Object] ], followers_count: 136692, followings_count: 0 }}

として、 JSONから "followers_count"が大きく異なっていることがわかります。また、(NodeJs呼び出しの場合)私は5〜30日にわたって同じ結果を得ます。 APIはCDNによって提供されていますか?

+0

オプションオブジェクトから "json:true"を削除してみます。 (それはちょうど私の好奇心です) –

+0

うわー、それは変です! json:true == 136692、json = 137426なし、ブラウザ(空のキャッシュ)= 137277(昨日の同じ結果)。今、どちらが正しいでしょうか? jsonのオプションがチャンク結果を返すと思いますか? –

+1

が可能です。 'Cache-Control': 'no-cache'ヘッダーを追加するか、URLにタイムスタンプパラメータを追加してください –

答えて

0

私の元の質問のコメントによると、問題は、API呼び出しのQueryStringにタイムスタンプフィールドを追加することで解決します。そうすれば、リクエストは常に異なったものとなり、常に最新の値を得ることができます。

ヒント@JacopoBrovidaに感謝します!

関連する問題