powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TIdHTTP и обработка ошибок 404 403 и проч
16 сообщений из 16, страница 1 из 1
TIdHTTP и обработка ошибок 404 403 и проч
    #39562310
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добрый день
проблема такая: использую TIdHTTP для работы с сервисом
и все бы ничего, но надо обрабатывать ошибки
а информацию об ошибках сервис присылает не в заголовках, а в Content, в Json-данных
при этом в заголовке - просто ошибка 403, без расшифровки
но при возникновении ошибки ContentStream не заполняется ничем

вот так это выглядит:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
  
  S := TStringStream.Create(Json);
  HTTP:=TIdHTTP.Create(nil);
  SSL:=TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  HTTP.IOHandler:=SSL;

//..........................................
//..........................................

    try
        HTTP.Get('https://test.com/v1/checkit', S);
        i:=HTTP.Response.ContentStream.Size; //  если все отработало норм, то здесь поток имеет содержимое, Size>0 
    except
      on E: Exception do begin
        i:=HTTP.Response.ContentStream.Size; //  если была ошибка, то Size=0
        MessageDlg('Ошибка: ' + e.Message, mtError, [mbOK], 0);
      end;
    end;

  FreeAndNil(S);
  HTTP.Destroy;
  SSL.Destroy;



что можно сделать тут? почему TIdHTTP не закачивает тело ответа?
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562383
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хочешь сказать IdHTTP1.ResponseText пусто ?
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562628
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer,

не пусто
там вот это:
"HTTP/1.1 403"

и всё.
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562631
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer,

а когда ситуация штатная, то там
"HTTP/1.1 200"

а контент - в ContentStream
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562677
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
genok,

а проблема в чём? вроде бы два чистых состояния. что не так?
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562679
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автори всё.

что ты там ожидал? сервер тебе вернул код ошибки. что ты еще от него хочешь? :)
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562704
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
genok,

это мерзкая фишка индейки.
если точно знаешь, что даже в случае 403 и т.п. сервер должен вернуть json и он тебе так необходим, то лучше искать замену инди.
например, Synapse THTTPSend. Он не генерит исключений и загружает контент в любом случае.
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562709
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если контент нужен ради стандартных ответов сервера типа 403 Forbidden , 404 Not Found ...
то кодов достаточно. https://ru.wikipedia.org/wiki/Список_кодов_состояния_HTTP
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562793
fd00ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
genok, исходники инди покури. емнип, там то ли опция была, которая подгружает ответ сервера при ошибках, то ли простое исправление исходников.
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562917
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writerесли точно знаешь, что даже в случае 403 и т.п. сервер должен вернуть json

именно так, должен
там на одну ошибку 404, к примеру, штук 7 её вариантов
а мне журналирование нужно сделать толковое
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562925
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fd00chgenok, исходники инди покури. емнип, там то ли опция была, которая подгружает ответ сервера при ошибках, то ли простое исправление исходников.

собственно, за этим и обратился к вашей помощи, сам не могу найти
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562928
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашел
в случае ошибки содержимое ответа сервиса попадает не в Response, а в EIdHTTPProtocolException.ErrorMessage
Json найден, всем спасибо!

Код: pascal
1.
2.
3.
4.
    except
      on E:EIdHTTPProtocolException do
        Result[0]:=E.ErrorMessage;
    end;
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562929
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
genok,

вот наверно твой случай.
https://stackoverflow.com/questions/15013068/indy-and-rest-can-i-prevent-exceptions
если верси Indy выше 9-й, то должна быть опция hoNoProtocolErrorException.
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562930
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writergenok,

вот наверно твой случай.
https://stackoverflow.com/questions/15013068/indy-and-rest-can-i-prevent-exceptions
если верси Indy выше 9-й, то должна быть опция hoNoProtocolErrorException.

посмотрел, у меня Indy 10.5.8.0 но такой опции нет
наверное, можно попробовать обновить на свежее и посмотреть что выйдет (у меня ХЕ2)
но не рискну, ибо на эту библиотеку завязана куча всего другого, что уже написано и РАБОТАЕТ
а то, что работает, как известно, лучше не трогать)))

нашел потерянный Json, и ладно. Нах эксперименты
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562931
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
genok,
да он в 10.6
https://stackoverflow.com/questions/29777812/delphi-idhttp-post

genokнашел потерянный Jsonа это точно он ? Какой умный инди стал, уже жсон парсит
...
Рейтинг: 0 / 0
TIdHTTP и обработка ошибок 404 403 и проч
    #39562932
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writer,

ну это не распарсенный Json, конечно
но инди есть куда расти))))
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TIdHTTP и обработка ошибок 404 403 и проч
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]