Всем привет.
Что хочу получить: программа отсылает запрос к серверу, сервер даёт ошибку 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 траффика показывает, что текст "неверный логин или пароль" в ответе присутствует