私はAFNetworkingと関連するグッズを使用しており、 AFOAuth2Clientをサブクラス化して、トークンなどで OAuth 作業を行いました。
テスト目的で、ページ/API エンドポイントにアクセスするためにユーザー名とパスワードを必要とする開発サーバーで作業しています。ページの 1 つを参照すると、小さなダイアログ ボックスが表示され、資格情報を入力すると、しばらくは問題ありません。私が理解しているように、これは「基本認証」または「基本アクセス認証」です。
したがって、AFOAuth2Client サブクラスをインスタンス化するときは、
[self setAuthorizationHeaderWithUsername:@"user" password:@"pass"];
プロンプトが表示されたらブラウザーに入力する適切なユーザー名とパスワードを使用しますが、このHTTPOperationWithRequest:
方法を使用して開発サーバーにアクセスしようとすると拒否されます。
代わりに、クライアントをインスタンス化するときに、次のことを試します。
NSURLCredential *credential = [NSURLCredential credentialWithUser:@"user" password:@"pass" persistence:NSURLCredentialPersistenceNone];
[self setDefaultCredential:credential];
そして、これは私が行うすべてのリクエストに対して正常に機能します。サーバーが私を入れてくれます。
私が理解している限り、最初の方法はAuthorization:
HTTPヘッダーに資格情報を設定することであり、2番目の方法は、リクエストが挑戦されたときにAuthorization:
HTTPヘッダーに資格情報を設定することを要求します...同じことですよね?
最初の方法が失敗し、2 番目の方法が成功するのはなぜですか?