【发布时间】:2012-10-30 22:08:37
【问题描述】:
soundcloud 有人在看这个吗?为什么我得到一个有效请求的 403?
我目前正在使用 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-运行时: 20 年龄: 0 内容长度: 28 X-可缓存: 否:缓存控制=无缓存 地点: GDA = 1351783496_b465064be1b41027a7a0bf6067d83169" > http://ak-media.soundcloud.com/kw7JNYi7HtCq?AWSAccessKeyId=AKIAJ4IAZE5EOI7PA7VQ&Expires=1351783496&Signature=UNtBsSfBh1XNvXPLSLNVzTQEclY%3D&的 GDA 强> = 1351783496_b465064be1b41027a7a0bf6067d83169 访问控制允许方法: 获取、放置、发布、删除 联系: 关闭 服务器: nginx X-缓存: 错过 缓存控制: 无缓存 X-清漆: 1398398080 访问控制允许标头: 接受、授权、内容类型、来源 日期: 格林威治标准时间 2012 年 11 月 1 日星期四 15:24:36 访问控制允许来源: * 通过: 1.1 清漆 内容类型: 应用程序/xml;字符集=utf-8
302 - 找到
我还添加了一个 Ti.API.debug(e.error);到我创建的 dlXhr.onerror 函数,这只是返回
【问题讨论】:
标签: ios http download titanium soundcloud