【发布时间】:2020-06-21 11:12:06
【问题描述】:
我使用 requests lib python 3.8。我有一个包含 20 个 URL 的列表。我为每个 URL 创建一个线程。在线程内部我有(当真)向一个地址发送发布请求,有时地址很忙,响应时间变长。 我如何立即发送发布请求。我不需要响应数据
【问题讨论】:
标签: python-3.x asynchronous post python-requests python-multithreading
我使用 requests lib python 3.8。我有一个包含 20 个 URL 的列表。我为每个 URL 创建一个线程。在线程内部我有(当真)向一个地址发送发布请求,有时地址很忙,响应时间变长。 我如何立即发送发布请求。我不需要响应数据
【问题讨论】:
标签: python-3.x asynchronous post python-requests python-multithreading
您可以为此使用简单的套接字,如下所示:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(f"POST /{URL} HTTP/1.1\r\nHost: {HOST}\r\nContent-Type: application/json\r\nContent-Length: {LENGTH}\r\n\r\n{CONTENT}")
或者作为变体,使用请求库的超时(它的大小是可变的):
try:
requests.post(f"http://{HOST}:{PORT}/{URL}/",timeout=0.1)
except requests.exceptions.ReadTimeout:
pass
【讨论】: