【发布时间】:2015-04-29 17:19:39
【问题描述】:
请求似乎发送到了错误的主机(不完全确定它们被发送到哪个主机,因为该响应可以由 4 个不同的服务器发送)。
Chrome 返回正确的 JSON 响应:
还有 Paw 的 NSURLConnection 库:
但默认的 Paw HTTP Library 返回 404 Not Found :
【问题讨论】:
请求似乎发送到了错误的主机(不完全确定它们被发送到哪个主机,因为该响应可以由 4 个不同的服务器发送)。
Chrome 返回正确的 JSON 响应:
还有 Paw 的 NSURLConnection 库:
但默认的 Paw HTTP Library 返回 404 Not Found :
【问题讨论】:
您实际上有 2 台本地服务器在侦听端口 8000,一台仅侦听 IPv6 连接(注意:这是 PHP 应用程序的默认设置),另一台侦听 IPv4 连接。
当您连接到“localhost”时,您没有指定要使用的 IP 协议,听起来大多数客户端(包括 Paw 中的 Chrome、ASIHTTPRequest 和 NSURLConnection)都选择首先连接到 IPv6。而 Paw HTTP 库选择连接到 IPv4(我们做出这个选择是因为 IPv4 仍然被广泛使用,并且希望尽可能避免错误)。
因此,当您运行指定 localhost:8000 的主 Web 应用程序时,服务器(在您的情况下为 PHP)实际上会监听 [::1]:8000(这是 IPv6 等价于 127.0.0.1:8000),我猜您的其他服务器会监听实际 IPv4 127.0.0.1:8000。 Chrome 和其他库连接到[::1]:8000 (IPv6) 并获取您的主要 PHP 应用程序,而“Paw HTTP 库”连接到您的其他服务器的127.0.0.1:8000 (IPv4),它返回我们可以在视频中看到的 404 .
您需要做的是指定实际 IP 而不是localhost。使用 http://[::1]:8000/plans 连接到侦听 IPv6 的主应用。
【讨论】: