这些请求似乎被发送到了错误的主机(不完全确定它们被发送到哪个主机,因为该响应可以由 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
服务器(在您的情况下为 PHP)实际侦听的主 Web 应用程序时[::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 的主应用程序。