python请求可能死锁

时间:2021-05-24 15:32:48

标签: python python-requests

我有一个服务通过 HTTP POST 接收请求,大约需要 6 分钟才能完成。

我可以在服务的日志中看到请求已完成。

我可以在我的应用程序日志中看到请求已发出并返回了有效响应。

DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): lk7syrvs3a-uc.a.run.app:443
send: b'POST /?user=foobar HTTP/1.1\r\nHost: lk7syrvs3a-uc.a.run.app\r\nUser-Agent: python-requests/2.25.1\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\nContent-Length: 0\r\n\r\n'

但是请求永远保持 requests.post,永不返回。

我的代码很简单:

def search(user):
    print(f"Requesting {user}")
    url = f"https://lk7syrvs3a-uc.a.run.app?user={user}"
    response = requests.post(url) # THIS LINE KEEP RUNNING FOREVER
    print(f"Request done {user}")
    if not response.ok:
        print("Error", f"{response.reason}")
        return []

    print(f"Done {user}")
    return response.json()["result"]

这是怎么回事?

如果我在浏览器或 cURL 上运行,我会收到来自服务器的正确响应。

编辑:

使用 urllib 我可以完成这项工作。所以这是一个关于请求的错误

>>> from urllib import request
>>> n = request.Request("https://lk7syrvs3a-uc.a.run.app?user=foobar", method="POST")
>>> r = request.urlopen(n)
>>> r.read()
b'{"result ...

0 个答案:

没有答案
相关问题