|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Получить текст ответа сервера при ошибке 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; Анализатор http траффика показывает, что текст "неверный логин или пароль" в ответе присутствует Не пускайте детей в интернет. |
#2
|
|||
|
|||
Решено
Код:
on E: EIdHTTPProtocolException do begin if E.ErrorCode = 401 then x := E.ErrorMessage else raise; end; Не пускайте детей в интернет. |