Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 与浏览器相比,Paw返回错误的网页_Rest_Ipv6_Ipv4_Paw App - Fatal编程技术网

Rest 与浏览器相比,Paw返回错误的网页

Rest 与浏览器相比,Paw返回错误的网页,rest,ipv6,ipv4,paw-app,Rest,Ipv6,Ipv4,Paw App,请求似乎被发送到了错误的主机,但不完全确定它们被发送到哪个主机,因为该响应可以由4个不同的服务器发送 Chrome返回正确的JSON响应: Paw的NSURLConnection库也是: 但是默认的Paw HTTP库返回404 Not Found: 实际上,有两台本地服务器在端口8000上侦听,一台只侦听IPv6连接注意:这是PHP应用程序的默认设置,另一台侦听IPv4连接 当您连接到本地主机时,您没有指定要使用哪个IP协议,而且听起来像大多数客户端,包括Paw中的Chrome、ASIHTTPR

请求似乎被发送到了错误的主机,但不完全确定它们被发送到哪个主机,因为该响应可以由4个不同的服务器发送

Chrome返回正确的JSON响应:

Paw的NSURLConnection库也是:

但是默认的Paw HTTP库返回404 Not Found:


实际上,有两台本地服务器在端口8000上侦听,一台只侦听IPv6连接注意:这是PHP应用程序的默认设置,另一台侦听IPv4连接

当您连接到本地主机时,您没有指定要使用哪个IP协议,而且听起来像大多数客户端,包括Paw中的Chrome、ASIHTTPRequest和NSURLConnection,都选择先连接到IPv6。鉴于Paw HTTP库选择连接到IPv4,我们做出了这样的选择,因为IPv4仍然被广泛使用,并且希望尽可能避免bug

因此,当您运行指定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,该IPv4访问您的其他服务器,返回我们在视频中看到的404


您需要做的是指定实际的IP而不是本地主机。使用http://[::1]:8000/计划连接到侦听IPv6的主应用。

您引入了一个bug,而不是避免一个bug。你应该先通过快乐眼球算法连接到IPv6。谢谢@MichaelHampton,快乐眼球算法就是答案。我对IP网络没有深入的了解,我认为应该在TCP网络层解决这个问题,所以我在Paw使用的库的repo上添加了一个问题