2013-08-21 2 views
0

У меня есть мой backend, разработанный в java, который выполняет все виды обработки. И мой интерфейс разработан с использованием флаговой оболочки python. Я использую requests для отправки запроса и получения ответа от apis, присутствующего в java.обработка [Errno 111] Соединение отказано в возврате запросами в колбе

Ниже приводится строка в моем коде, который делает это:

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

Моя проблема в том, что иногда, когда экземпляр кот не работает или есть некоторая проблема с Java APIs, я всегда получаю сообщение об ошибке от запросов следующим образом:

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) 

Я хочу, чтобы обрабатывать любые такие ошибки, которые я получаю в моем колба приложение, так что я могу дать необходимый ответ на веб-странице, а не показывает пустой экран. Итак, как я могу это достичь?

ответ

1

Поймать request.post исключение повышается с помощью try-except:

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

спасибо за это. Думал то же самое, но хотел подтвердить. – srahul07

Смежные вопросы