在flas中处理请求拒绝返回的[Errno 111]连接

2024-10-06 08:57:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我的后端是用java开发的,它可以进行各种处理。我的前端是用python的flask框架开发的。我使用requests发送请求并从java中的api获得响应。

下面是我代码中执行此操作的行:

req = requests.post(buildApiUrl.getUrl('user') + "/login", data=payload)

我的问题是,有时当tomcat实例没有运行或者javaapi有问题时,我总是从以下请求中得到一个错误:

    ERROR:root:HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /MYAPP/V1.0/user/login (Caused by <class 'socket.error'>: [Errno 111] Connection refused)
Traceback (most recent call last):
  File "/home/rahul/git/myapp/webapp/views/utils.py", line 31, in decorated_view
    return_value = func(*args, **kwargs)
  File "/home/rahul/git/myapp/webapp/views/public.py", line 37, in login
    req = requests.post(buildApiUrl.getUrl('user') + "/login", data=payload)
  File "/home/rahul/git/myapp/venv/local/lib/python2.7/site-packages/requests/api.py", line 88, in post
    return request('post', url, data=data, **kwargs)
  File "/home/rahul/git/myapp/venv/local/lib/python2.7/site-packages/requests/api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "/home/rahul/git/myapp/venv/local/lib/python2.7/site-packages/requests/sessions.py", line 335, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/rahul/git/myapp/venv/local/lib/python2.7/site-packages/requests/sessions.py", line 438, in send
    r = adapter.send(request, **kwargs)
  File "/home/rahul/git/myapp/venv/local/lib/python2.7/site-packages/requests/adapters.py", line 327, in send
    raise ConnectionError(e)
ConnectionError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /MYAPP/V1.0/user/login (Caused by <class 'socket.error'>: [Errno 111] Connection refused)

我想处理我在flask应用程序中收到的任何此类错误,以便在网页上给出必要的响应,而不是显示空白屏幕。那我怎么才能做到这一点呢?


Tags: inpygiturlhomevenvliblocal
1条回答
网友
1楼 · 发布于 2024-10-06 08:57:36

捕获异常请求。使用try-except引发post:

try:
    req = requests.post(buildApiUrl.getUrl('user') + "/login", data=payload)
except requests.exceptions.RequestException:
    # Handle exception ..

相关问题 更多 >