
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.75] |
![]() |
|
![]() |
Сообщ.
#1
,
|
|
Насколько я вижу, в Indy 10, если не выставлен флаг hoNoProtocolErrorException, запросы генерят исключение при неуспешном результате запроса (например, ошибка 404 и пр). При этом ResponseCode устанавливается в нужное значение (404). Однако, если исключение возникает по какой-то другой причине (например, таймаут), то ResponseCode, как я вижу, не меняется. Т.е. если при прошлом запросе было 200, то так 200 и останется.
Вопрос: можно ли каким-то образом либо сбросить ResponseCode в -1 перед вызовом (прямым присваиванием не получится, ибо это read only property), либо определить был ли ResponseCode установлен в нужное значение или нет? Можно отлавливать EIdHTTPProtocolException, но есть подозрение, что это не единственное исключение, при котором устанавливается ResponseCode. Резюме: нужно после отправки запроса определить актуальность значения ResponseCode, если возникло исключение. Каким образом это можно сделать? |
Сообщ.
#2
,
|
|
|
Хочешь сказать, responsecode не очищается при отправке следующего запроса? Кмк, это баг, причем очевидный. Возможно, стоит сообщить разрабу.
В целом исключение на http ошибку это порочная практика. Лучше просто это отключить и обрабатывать коды ответов самому |
![]() |
Сообщ.
#3
,
|
|
Fr0sT, не очищается. И полагаю, разрабы так специально сделали зачем-то. А исключения по HTTP-ошибке отключается опцией.
Ну а вообще, пора надо на THTTPClient переходить ![]() |
Сообщ.
#4
,
|
|
|
Я очень мало знаком с индями, но некоторые их идеи вызывают у меня крайнюю степень охреневания. Хотя нынешний мейнтейнер чел очень адекватный. Возможно, всё это было задолго до него
|