3

私は、あらゆる種類の処理を行う Java で開発されたバックエンドを持っています。私のフロントエンドは、Python のフラスコ フレームワークを使用して開発されています。リクエストを使用してリクエストを送信し、Java に存在する API からレスポンスを取得しています。

以下は、それを行う私のコードの行です。

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

私の問題は、Tomcat インスタンスが実行されていないか、Java API に問題がある場合に、次のようにリクエストから常にエラーが発生することです。

    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)

空白の画面を表示する代わりに、Web ページで必要な応答を返すことができるように、フラスコ アプリで受け取ったエラーを処理したいと考えています。では、どうすればこれを達成できますか?

4

1 に答える 1

3

以下を使用して request.post が発生させる例外をキャッチしますtry-except

try:
    req = requests.post(buildApiUrl.getUrl('user') + "/login", data=payload)
except requests.exceptions.RequestException:
    # Handle exception ..
于 2013-08-21T09:39:05.820 に答える