Delphi: Indy - как получить тело ответа на ошибку?

Delphi6 и XE3.

Я хочу получить реальное тело ответа на запрос. Но сервер делает ошибку 500. Затем Indy заменяет текст ответа описанием ошибки.

Эта домашняя страница также предназначена для ответа 500 в ненормальных операциях, и мы должны определить, что делать, исходя из текста ответа.

Могу ли я получить текст ответа от IdHTTP или от объекта Exception, когда код состояния равен 500?

Спасибо за любую информацию!

 mjn10 июн. 2013 г., 14:54
какая версия инди?
 Remy Lebeau10 июн. 2013 г., 18:08
@durumdara: Почему вы не можете получить к нему доступ?EIdHTTPProtocolException.ErrorMessage является публичной собственностью.
 durumdara11 июн. 2013 г., 08:28
Это's моя ошибка ... Я использовал E.Message вместо E.ErrorMessage, но я каждый раз скучал ... :-(
 durumdara10 июн. 2013 г., 15:02
для XE3. Это'Интересно, что EIdHTTPProtocolException 's FErrorMessage содержит ответ, но я не могт доступ к нему ... :-(

Ответы на вопрос(1)

Решение Вопроса

когдаTIdHTTP сталкивается с ошибкой сервера, вызываетEIdHTTPProtocolException исключение, где егоErrorCode Свойство содержит код состояния HTTP (500 и т. д.), егоMessage свойство содержит текст статуса HTTP ("Внутренняя ошибка"и т. д.), и егоErrorMessage свойство содержит основной текст ответа, если таковой имеется. Так, например:

try
  IdHTTP1.Get(...);
except
  on E: EIdHTTPProtocolException do begin
    // use E.ErrorCode, E.Message, and E.ErrorMessage as needed...
  end;
end;

Ваш ответ на вопрос