3

我正在使用AFNetworking和相关的好东西,并且我将AFOAuth2Client子类化以使用令牌等进行一些 OAuth 工作。

出于测试目的,我正在开发一个需要用户名和密码才能访问页面/API 端点的开发服务器。当我浏览到其中一个页面时,会出现一个小对话框,输入凭据,然后我就可以使用一段时间了。据我了解,这是“基本身份验证”或“基本访问身份验证”。

所以当我实例化我的 AFOAuth2Client 子类时,我使用

[self setAuthorizationHeaderWithUsername:@"user" password:@"pass"];

使用适当的用户名和密码,我会在出现提示时在浏览器中输入,但是当我尝试使用该HTTPOperationWithRequest:方法访问开发服务器时,我被拒绝了。

因此,当我实例化客户端时,我尝试:

NSURLCredential *credential = [NSURLCredential credentialWithUser:@"user" password:@"pass" persistence:NSURLCredentialPersistenceNone];
[self setDefaultCredential:credential];

这适用于我提出的所有要求;服务器让我进去。

现在据我了解,第一种方法是Authorization:使用我的凭据设置 HTTP 标头,第二种方法告诉我的请求,当它受到挑战时,Authorization:使用我的凭据设置 HTTP 标头……同样的事情,不是吗?

为什么第一种方法会失败而第二种方法会成功?

4

0 回答 0