我有一行代码,用于向get()
服务器发送http
请求的代码:
json_data = requests.get(
"http://"+ <host_ip> + <http_resource_path>,
auth=HttpNtlmAuth('<Username>', '<Passwrd>'), headers={'host': host_DNS_name}).json()
现在,当我执行此代码时,它成功了,但我注意到它尝试了3次尝试(代码点击了网址3次并在第3次尝试中成功,第2次尝试导致401
错误) 。这是我在执行此代码时在控制台上看到的内容:
http://<host-IP:80 "GET <http_resource_path> HTTP/1.1" 401 58
http://<host-IP:80 "GET <http_resource_path> HTTP/1.1" 401 341
http://<host-IP:80 "GET <http_resource_path> HTTP/1.1" 200 74
正如您每次都可以看到相同的URL
,credentials
和port number
(80
}一样,它会尝试3次尝试成功(前2次尝试导致unauthorized access
,但第3次尝试成功,参数相同)。这种多次尝试导致大约15秒的延迟(在第1次和第3次尝试之间)。现在我无法理解为什么在参数没有改变的情况下尝试3次尝试成功?我的代码中有什么东西可以解决这个问题和/或调试,或者是我试图访问的服务器中的问题?
答案 0 :(得分:0)
服务器正在返回401响应,而您的问题并未说明您要连接的服务器,因此我们无法确定原因。这可能是因为您正在使用某些速率限制代码,但服务器可能由于多种原因而不允许前两个请求。
如果您可以控制服务器的代码,请查看源代码并查看处理您正在进行的请求的代码。另请查看适用于所有请求的代码,例如中间件。
如果您无法访问源代码,则必须向网站所有者询问原因。