2

我使用 SoundCloud API 来检索可流式轨道的流 URL。我遵循重定向,最终得到一个如下所示的 URL:

http://ec-media.soundcloud.com/eodihgiuh.128.mp3?<a string>
    AWSAccessKeyId=<access key>
    &Expires=<timestamp>
    &Signature=<signature>

或者

http://ak-media.soundcloud.com/euieuieie.128.mp3?
    AWSAccessKeyId=<access key>
    &Expires=<timestamp>
    &Signature=<signature>
    &__gda__=<a string>

然后我开始在这个 URL 上流式传输 MP3 数据。

首先,我发送一个HEAD读取Content-Length标题的请求,这样我就知道需要发送多少个GET请求才能播放整首歌曲。

然后我发送几个部分GET请求,每个请求都有不同的Range标头。

问题是有时HEAD请求会返回403状态码,即使GET对完全相同的 URL 的请求会返回200状态码。似乎当且仅当主机是 时才会发生这种情况ak-media.soundcloud.com

这应该发生吗?我希望HEAD请求返回与请求完全相同的标头GET,只是没有正文响应。

干杯,

PS:我可能应该提一下,我的代码不是在计算机上运行,​​而是在具有非常有限资源的微型 8 位处理器的音频设备上运行。

4

1 回答 1

0

不幸的是,目前我们只为 GET 请求提供有保证的正确响应。

作为一个黑客,你可以尝试用非常短的 s 来做请求range

于 2012-12-10T17:37:25.460 回答