【问题标题】:How to send HTTP requests without getting the status/source code - Python 3 [duplicate]如何在不获取状态/源代码的情况下发送 HTTP 请求 - Python 3 [重复]
【发布时间】:2018-06-19 10:32:47
【问题描述】:

我知道当你想在 Python 3 中发送 HTTP 请求时,你使用以下代码:

import requests
requests.get(url = "http://example.com")

程序等待网站发回它的状态/源代码。 但是我正在尝试编写一个发送 HTTP 请求但不等待网站回复的程序。我该怎么做?

编辑 我尝试使用 TCP 和 UDP,但由于我在发送数据包后获得了网站的状态,所以两者都不起作用。

【问题讨论】:

标签: python python-3.x python-requests httprequest


【解决方案1】:

如果您根本不关心响应,您可以为此使用多处理池。

import multiprocessing
import requests

p = multiprocessing.Pool(processes = 1)
p.apply_async(requests.get, ['https://google.com'])

我假设您想要这样做的唯一目的是当您想要进行异步调用而不等待调用完成以启动另一个调用时,您可以增加进程数量并在 for 循环中异步调用:

import multiprocessing
import requests

p = multiprocessing.Pool(processes = 4)
for i in range(10):
    p.apply_async(requests.get, ['https://google.com'])

只是一个例子,进程和异步调用的数量可能会因您的处理器能力而异。

【讨论】:

  • 谢谢这对我帮助很大。但我正在尝试制作类似服务器(不完全是服务器)的东西,如果发送请求超过 1000 次,此代码似乎不起作用.有办法处理吗?
  • 当您发送请求超过 1000 次时,究竟什么不起作用?
  • 它给出了错误:“打开的页面太多”
  • 如果您的服务器在处理请求时给出了此错误,那么这与您提出的问题无关。对于您提出的问题,这就是解决方案
  • 不是由服务器通过python程序
猜你喜欢
  • 2021-06-16
  • 1970-01-01
  • 2019-07-22
  • 2018-07-31
  • 2011-05-21
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多