Всем привет.
Что хочу получить: программа отсылает запрос к серверу, сервер даёт ошибку 401 и даёт текст (напр "неверный логин или пароль"). Мне нужен этот текст.
Выглядит так
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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
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 траффика показывает, что текст "неверный логин или пароль" в ответе присутствует