Показать сообщение отдельно
  #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 траффика показывает, что текст "неверный логин или пароль" в ответе присутствует
__________________
Не пускайте детей в интернет.
Ответить с цитированием