当前位置: 首页 > 知识库问答 >
问题:

除了使用Python请求模块外,尝试/的正确方法是什么?

唐泳
2023-03-14
try:
    r = requests.get(url, params={'s': thing})
except requests.ConnectionError, e:
    print e #should I also sys.exit(1) after this?

这是正确的吗?有没有更好的方法来构建这个?这能覆盖我所有的基础吗?

共有1个答案

宋明亮
2023-03-14

请查看请求异常文档。简而言之:

如果出现网络问题(例如DNS故障、拒绝连接等),请求将引发connectionerror异常。

如果出现罕见的无效HTTP响应,请求将引发httperror异常。

回答你的问题,你所展示的不会涵盖你所有的基础。您只会捕获与连接相关的错误,而不会捕获超时的错误。

当您捕捉到异常时该做什么实际上取决于您的脚本/程序的设计。退出可以接受吗?你能继续再试一次吗?如果错误是灾难性的,您不能继续,那么是的,您可以通过引发SystemExit(打印错误和调用sys.exit)来中止程序。

您可以捕获基类异常(它将处理所有情况):

try:
    r = requests.get(url, params={'s': thing})
except requests.exceptions.RequestException as e:  # This is the correct syntax
    raise SystemExit(e)
try:
    r = requests.get(url, params={'s': thing})
except requests.exceptions.Timeout:
    # Maybe set up for a retry, or continue in a retry loop
except requests.exceptions.TooManyRedirects:
    # Tell the user their URL was bad and try a different one
except requests.exceptions.RequestException as e:
    # catastrophic error. bail.
    raise SystemExit(e)
try:
    r = requests.get('http://www.google.com/nothere')
    r.raise_for_status()
except requests.exceptions.HTTPError as err:
    raise SystemExit(err)
404 Client Error: Not Found for url: http://www.google.com/nothere
 类似资料:
  • 问题内容: 它是否正确?有没有更好的方法来构造它?这会覆盖我所有的基地吗? 问题答案: 看一下Requests 异常文档。简而言之: 如果出现网络问题(例如DNS故障,连接被拒绝等),请求将引发异常。 如果发生罕见的无效HTTP响应,则请求将引发HTTPError异常。 如果请求超时,Timeout则会引发异常。 如果请求超过配置的最大重定向数,则会引发异常。 请求显式引发的所有异常都继承自。 要

  • 问题内容: 我正在Heroku上编写一个node.js应用程序,并使用pg模块。我无法弄清楚为查询数据库所需的每个请求获取客户端对象的“正确”方法。 该文档使用如下代码: 但是,您肯定不需要在使用数据库的每个函数中调用对吗?我看过其他执行此操作的代码: 我倾向于第二种选择,因为我相信Heroku的免费数据库实例无论如何都仅限于一个连接,但是以这种方式进行操作是否有任何弊端?每次使用之前,是否需要检

  • 问题内容: 我发现了一些在servlet中获取ip的方法。但我不知道哪一个是正确的,为什么。 1: 2: 3: 问题答案: 答案很复杂。 如果您的Servlet在反向代理或负载平衡器后面的Web服务器上运行,则可以将该Web代理配置为注入请求标头,该标头提供了请求来自的IP地址。不同的反向代理将注入不同的标头。请查阅您的(前端)服务器的文档。 如果您的客户端使用(转发)代理,则它 可能会 插入标头

  • 本文向大家介绍python 使用 requests 模块发送http请求 的方法,包括了python 使用 requests 模块发送http请求 的方法的使用技巧和注意事项,需要的朋友参考一下 Requests具有完备的中英文文档, 能完全满足当前网络的需求, 它使用了urllib3, 拥有其所有的特性! 最近在学python自动化,怎样用python发起一个http请求呢? 通过了解 requ

  • 问题内容: 在Angular1中,可以通过配置$ http-provider解决此问题。喜欢: 在Angular2中做同样的事情是什么好习惯? 在Angular2中使用http请求,我们需要使用Http类。当然,将CSRF行添加到每个后功能调用中不是一个好习惯。 我猜在Angular2中,我应该创建自己的类,该类继承Angular2的Http类并重新定义后功能。是正确的方法还是更优雅的方法? 问题

  • 问题内容: 即使在使用Java Swing一年以上之后,对我来说,它仍然像魔术一样。如何正确使用BufferStrategy,尤其是方法? 我想添加一个JFrame和一个Canvas,然后进行绘制。我还希望能够调整()画布的大小。每次我调整Canvas的大小时,似乎都会被浪费掉,或者变得毫无用处,因为在上使用并没有真正做任何事情。另外,它具有怪异的不确定性行为,我不知道如何正确同步它。 这就是我的