我使用 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
header ,这样我就知道我需要处理多少个GET
请求发送以播放整首歌曲。
然后我发送几个部分 GET
请求,每个请求都有不同的 Range
header 。
问题是有时 HEAD
请求返回一个 403
状态代码,即使对完全相同的 URL 的 GET
请求返回200
状态码。似乎当且仅当主机是 ak-media.soundcloud.com
时才会发生这种情况。
这是应该发生的吗?我希望 HEAD
请求返回与 GET
请求完全相同的 header ,只是没有正文响应。
干杯,
铅
P.S:我应该提一下,我的代码不是在计算机上运行,而是在带有微型 8 位处理器的音频设备上运行,该处理器的资源极其 .
最佳答案
遗憾的是,目前我们只为 GET 请求提供有保证的正确响应。
作为 hack,您可以尝试使用非常短的 range
发送请求。
关于http - SoundCloud API : GET succeeds, HEAD 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13804320/