Поиск сообщества
Показаны результаты для тегов 'ошибка 401'.
Найдено: 1 результат
-
Пытаюсь авторизоваться на локальном сервере: type TResponser = record Response: string; Code: integer; end; ... procedure TFrmLogin.OnAuthEvent(const Sender: TObject; AnAuthTarget: TAuthTargetType; const ARealm, AURL: string; var AUserName, APassword: string; var AbortAuth: Boolean; var Persistence: TAuthPersistenceType); var MyCredential: TCredentialsStorage.TCredential; begin MyCredential := TNetHTTPClient(Sender).CredentialsStorage.FindAccurateCredential(AnAuthTarget, ''); AUserName := MyCredential.UserName; APassword := MyCredential.Password; end; procedure TFrmLogin.OnValidateServerCertificate( const Sender: TObject; const ARequest: TURLRequest; const Certificate: TCertificate; var Accepted: Boolean); begin Accepted:=true; end; function TFormLogin.LoginToServer(login,pass:String):TResponser; var aResponse: IHTTPResponse; aResponser: TResponser; sStream: TStringStream; aHttpClient: TNetHTTPClient; begin try aHTTPClient := TNetHTTPClient.Create(nil); aHTTPClient.OnAuthEvent:=OnAuthEvent; aHTTPClient.OnValidateServerCertificate:=OnValidateServerCertificate; aHTTPClient.CredentialsStorage.AddCredential (TCredentialsStorage.TCredential.Create(TAuthTargetType.Server,'', sURL, login, pass)); aHTTPClient.AllowCookies :=true; aHTTPClient.AcceptLanguage:='ru-RU;q=0.8,en-US;q=0.5,en;q=0.3'; aHTTPClient.ContentType :='text/json'; aHTTPClient.AcceptCharset :='utf-8'; aHTTPClient.Accept :='text/json,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; try sStream := TStringStream.Create(); try aResponse := aHttpClient.Get(sURL, sStream); aResponser.Response:=sStream.DataString; aResponser.Code:=aResponse.StatusCode; // тут получаю код 200 Result:=aResponser; except end; finally sStream.Free; end; finally aHttpClient.Free; end; end; После get cразу получаю код 200 (от ответного кода я решаю авторизован я или нет). Однако на сервер реально приходит 2 запроса: первый без basic authorization (и на него дается в ответ код 401), второй с basic authorization (на него уже в ответ код 200). Почему проходит два запроса, когда в программе я вижу только один?