有人從soundcloud看這個嗎?爲什麼我得到一個有效的請求403?Soundcloud下載超時
我正在使用Titanium構建iOS應用程序。
我包括一項新功能,允許用戶下載的SoundCloud .mp3文件和應用程序(保存到應用程序目錄)發揮他們
我寫的一些曲目的做工精細的代碼,但不適用於其他人。客戶端無限制地下載所有曲目,並且我最大限度地增加了最大超時時間,並且它仍然只下載約170個字節,然後在一些曲目上失敗。在其他人下載整個曲目沒有問題。真的難住這個,任何人有任何想法?
下面是代碼,也是一個跟蹤工作的例子,如果有人可以看到差異,一個不工作的例子?
感謝
賈斯汀
//Download code
var newDir = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory,'scDownloads');
newDir.createDirectory();
var id = fStripped;
var dlXhr = Titanium.Network.createHTTPClient({
timeout : 500000});
dlXhr.onload = function(){
var file = Ti.Filesystem.getFile(newDir.resolve(),id +'.mp3');
Ti.API.warn('file is: ' + file);
file.createFile();
file.write(this.responseData);
}
dlXhr.open('GET',dlURL + '?client_id=' + soundcloudClientID);
dlXhr.send();
而且這裏有幾個曲目(與客戶端ID)
這一個工程:https://api.soundcloud.com/tracks/60943956/download?client_id=7a0984726d0eefbb310771c4c02116a8
這一個不:https://api.soundcloud.com/tracks/63980557/download?client_id=7a0984726d0eefbb310771c4c02116a8
我測試過這個的SoundCloud的API控制檯上(http://developers.soundcloud.com/console),得到了以下內容:
HTTP 1.1 302移動/暫 訪問控制 - 暴露 - 接頭: 日期 X-運行時間:年齡:的Content-Length: X緩存的: NO:緩存控制=無緩存 位置: GDA = 1351783496_b465064be1b41027a7a0bf6067d83169" > http://ak-media.soundcloud.com/kw7JNYi7HtCq? AWSAccessKeyId = AKIAJ4IAZE5EOI7PA7VQ &到期= 1351783496 &簽名= UNtBsSfBh1XNvXPLSLNV zTQEclY%3D & GDA = 1351783496_b465064be1b41027a7a0bf6067d83169 訪問控制允許的方法: GET,PUT,自檢,DELETE 連接: 接近 服務器: nginx的 X-緩存: MISS 的Cache-Control: 沒有-cache X-光油:訪問控制允許報頭: 接受,授權,內容類型,產地 日期: 星期四,2012 GMT 15時24分36秒 訪問控制 - 允許 - 年11月1起源: * Via: 1.1 varnish Content-Type: application/xml;字符集= UTF-8
302 - 實測值
我還添加了Ti.API.debug(e.error);到dlXhr。onerror函數我已經創建,並且這只是返回
道森嗨,我將添加onError的功能,只是還沒有得到那麼遠呢,流媒體已經在應用程序和工作正常(有一個版本,現在沒有問題住),這裏的要點是下載問題是一致的,而不是隨機的。某些軌道工作,其他人不會讓我想知道這是否與Soundcloud有關。 –
所以我剛剛捕獲了一個錯誤....它是無用的。 {source =「[object TiNetworkClient]」; type = error;這是從字面上說,所有它說 –
如果你看看client.status,你會看到你得到了一個403. –