Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.10.2018, 12:15
ImDoode ImDoode вне форума
Прохожий
 
Регистрация: 02.12.2010
Сообщения: 15
Репутация: 10
Вопрос Получить текст ответа сервера при ошибке 401

Всем привет.
Что хочу получить: программа отсылает запрос к серверу, сервер даёт ошибку 401 и даёт текст (напр "неверный логин или пароль"). Мне нужен этот текст.
Выглядит так
Код:
var
  response: string;
  data: TStringStream;
begin
  Form1.IdHTTP1.Request.ContentType := 'application/json;charset=UTF-8';
  Form1.IdHTTP1.ConnectTimeout  := 3000;
  data := TStringStream.Create(
    '{"login":"' + login + '","password":"'+password+'"}'
    );
  Result := getMessage('');
  try
    response := Form1.IdHTTP1.Post('http://mysite.org/login', data);
    //Form1.log('Response: ' + response);
    Form1.IdHTTP1.Request.CustomHeaders.Clear;
    Form1.IdHTTP1.Request.CustomHeaders := TIdHeaderList.Create(TIdHeaderQuotingType.QuoteHTTP);
    Result := getMessage(response);
  except
    on E: Exception do begin
        Form1.log('Request error: '+ E.Message);
        ShowMessage(E.Message);
        ShowMessage(response);
      end;
    end;
  end;
  data.free;
  Form1.IdHTTP1.Disconnect;
end;
Что я имею: кетч экцепшна даёт мне сам текст ошибки (E.Message = " HTTP/1.1 401 Unauthorized"), response пустой остаётся
Анализатор http траффика показывает, что текст "неверный логин или пароль" в ответе присутствует
__________________
Не пускайте детей в интернет.
Ответить с цитированием
  #2  
Старый 28.10.2018, 16:10
ImDoode ImDoode вне форума
Прохожий
 
Регистрация: 02.12.2010
Сообщения: 15
Репутация: 10
По умолчанию

Решено
Код:
  on E: EIdHTTPProtocolException do begin
    if E.ErrorCode = 401 then
      x := E.ErrorMessage
    else
      raise;
  end;
__________________
Не пускайте детей в интернет.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:38.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter