![iTunes、SongBird 和 DAAP](https://linux22.com/image/1221273/iTunes%E3%80%81SongBird%20%E5%92%8C%20DAAP.png)
这看起来像是一个 stackoverflow 问题,但请耐心听我说:
我已经用 Ruby 构建了(大部分) DAAP 服务器,我已经在 mt-daapd 服务器上建模了它的输出,因此我的测试数据是这样的,我的服务器返回的数据与 mt-daapd 服务器在相同情况下所做的完全一样*。
(* 唯一的区别是我的服务器添加了 HTTP 标头“Connection: close”,而我无论如何也想不出如何停止它 -是一个关于 stackoverflow 的问题)
如果需要,我可以讲得更详细一些,但我的问题是,虽然 Songbird 可以完美地找到、连接和读取我的 DAAP 服务器,但 iTunes 拒绝发出除第一个“/server-info”请求之外的任何请求(请参阅非官方规范)。我应该补充一点,即使我的 daap 服务器被拒绝,mt-daapd 共享也能完美运行!
显然,这很可能是因为 iTunes 不喜欢我发送“Connection: close”标头,但有人知道更多关于 iTunes 9.0.X 期望其 DAAP 服务的方式吗?或者我可以在哪里找到这些信息 - 除了剥离 mt-daapd 代码的层层外?
非常感谢!
答案1
事实证明,iTunes 发送了一个不寻常的 GET 请求,而不是标准的“GET /path/to/whatever”,iTunes(通过 DAAP 浏览时)发送的是“GET daap://ip.address/path/to/whatever”。这很好。