Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.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
Python HTTP服务器从iPhone获取多个请求_Iphone_Python_Http_Request - Fatal编程技术网

Python HTTP服务器从iPhone获取多个请求

Python HTTP服务器从iPhone获取多个请求,iphone,python,http,request,Iphone,Python,Http,Request,我创建了一个非常基本的Python http服务器(Python v3.2),它使用BaseHTTPRequestHandler处理GET请求。当我在电脑上使用任何网络浏览器时,它都可以正常工作。但是,当我在iPhone上使用移动浏览器时,我总是看到三个GET请求 例如,如果我运行以下命令: import http.server from http.server import HTTPServer from http.server import BaseHTTPRequestHandler c

我创建了一个非常基本的Python http服务器(Python v3.2),它使用BaseHTTPRequestHandler处理GET请求。当我在电脑上使用任何网络浏览器时,它都可以正常工作。但是,当我在iPhone上使用移动浏览器时,我总是看到三个GET请求

例如,如果我运行以下命令:

import http.server
from http.server import HTTPServer
from http.server import BaseHTTPRequestHandler

class MyHandler (BaseHTTPRequestHandler):
    def do_GET(self):
        print(self.path)

print('running server on port 80')
server = HTTPServer(('', 80), MyHandler)
server.serve_forever()
…然后我进入iPhone上的网络浏览器,输入“192.168.1.191/blah”,输出如下:

/blah
/blah
/blah
但如果我在计算机上执行此操作,它只发送一个GET请求,因此输出如下:

/blah
有人能向我解释为什么iPhone会这样吗?它每次始终发送3个请求。这有什么办法吗

顺便说一句,如果我使用Apache服务器,iPhone不会这样做。它只发送一个GET请求。只有当我使用Python运行服务器时,才会出现这种情况


谢谢,Safari最多会返回三次请求——显然是在出现HTTP错误的情况下。
从do_GET()方法内部生成正确的HTTP响应将解决此问题。

Safari最多返回三次请求-显然是在出现HTTP错误的情况下。
从do_GET()方法内部生成正确的HTTP响应将解决此问题。

好的,那么我是否可以在do_GET()方法中添加以下行?self.send_response(200)当我这样做时,它似乎只锁定了一秒钟,但是的,它只发送一个GET。很抱歉,当一个请求通过Safari到达服务器端时,它会正常工作。我使用AJAX将不同的GET背靠背发送到我的Python服务器。当我使用上述方法(发送200响应)时,它会锁定几秒钟。因此,如果我尝试发送两个不同的,相隔1秒的,第一个到达,然后它挂起几秒钟,然后第二个到达并被处理。是否有其他HTTP响应我可以尝试?谢天谢地。我明白了。我使用self.send_response_only(200)。谢谢你的指导。好的,我是否可以在do_GET()方法中添加以下行?self.send_response(200)当我这样做时,它似乎只锁定了一秒钟,但是的,它只发送一个GET。很抱歉,当一个请求通过Safari到达服务器端时,它会正常工作。我使用AJAX将不同的GET背靠背发送到我的Python服务器。当我使用上述方法(发送200响应)时,它会锁定几秒钟。因此,如果我尝试发送两个不同的,相隔1秒的,第一个到达,然后它挂起几秒钟,然后第二个到达并被处理。是否有其他HTTP响应我可以尝试?谢天谢地。我明白了。我使用self.send_response_only(200)。谢谢你的指导。