我使用SoundCloud API检索可流式跟踪的流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
请求返回200
状态代码。当且仅当主机为ak-media.soundcloud.com
时才会发生这种情况。
这应该发生吗?我希望HEAD
请求返回与GET
请求完全相同的标头,只有没有正文响应。
干杯,
PB
PS:我应该提一下,我的代码是不在计算机上运行,而是在一个带有微小8位处理器的音频设备上,该处理器具有极有限的资源答案 0 :(得分:0)
不幸的是,目前我们只为GET请求提供有保证的正确响应。
作为黑客攻击,您可以尝试使用非常短的range
s来执行请求。