Как получить ответ, даже если соединение дает ошибку в IdHttp?
При использовании TIdHttp вот так:
Memo1.Text := IdHTTP1.post(url,data);
Я могу получить ответное сообщение на memo1, если оно не выдает ошибку http. Но когда он дает http плохой запрос, Indy не дает мне контента. Я также использую try..except, но он только предотвращает ошибку и по-прежнему не дает мне контента.
Как я могу получить контент, даже если он возвращает ошибку http?
2 ответа
Когда происходит ошибка HTTP, TIdHTTP
поднимает EIdHTTPProtocolException
исключение. Это исключение содержит код состояния HTTP в своем ErrorCode
свойство, текст статуса HTTP в его Message
свойство, и данные ответа в его ErrorMessage
имущество.
Попробуй этот код
Try
Memo1.Text := IdHTTP1.post(url,data);
except on e: EIdHTTPProtocolException do
begin
memo1.lines.add(idHTTP1.response.ResponseText);
memo1.lines.add(e.ErrorMessage);
end;
e.ErrorMessage предоставит вам некоторую информацию о неверном запросе.