【问题标题】:HTTP Authentication in iPhoneiPhone 中的 HTTP 身份验证
【发布时间】:2011-04-29 02:00:14
【问题描述】:

我希望有人可以帮助我解决与 Xcode 中的身份验证有关的问题 基本上我有一个返回 XML 的 MS Sharepoint 服务器。 我有这段代码用于身份验证,但无法访问。

NSString *urlString = @"http://example.com/";

NSMutableURLRequest *request= [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];

NSString *str1 = [NSString stringWithString:@"username:password"];
NSData *myDate = [str1 dataUsingEncoding:NSUTF8StringEncoding];
NSString *str2 = [Base64 encode:myDate];
NSLog(@"%@ str1 %@", str2,str1);

[request addValue:[NSString stringWithFormat:@"Basic %@",str2] forHTTPHeaderField:@"Authorization"];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *str = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"%@", str);

即使我传递了正确的凭据,但服务器不接受。 它返回

401 - 未经授权:由于凭据无效,访问被拒绝。

可以帮忙吗?

【问题讨论】:

    标签: iphone ios http authentication


    【解决方案1】:

    使用NSURLConnection-connection:didReceiveAuthenticationChallenge: 委托方法来检测何时需要身份验证。简而言之,您将使用 NSURLCredential 实例将身份验证附加到请求。

    文档有很好的概述和代码示例:

    Responding to an Authentication Challenge

    【讨论】:

      【解决方案2】:

      考虑使用开源的ASIHTTPRequest 类,因为它使authenticated requests 变得非常简单。

      【讨论】:

      • 我只是在写同样的答案。 +1
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多