ASIHTTP(arc) to AFNetworing(2.5)迁移 过NTLM验证设置方法

来源:互联网 发布:directx游戏编程 编辑:程序博客网 时间:2024/06/05 08:35

12年开始接触开发到现在一直都是迷恋asi的一套东西,并且asi也有了自己的arc并且是有维护的版本;故每次的项目我还是“投机取巧”用原来的网络请求库。

上周“师傅”来找我,我问道他用神马的时候,突然觉得自己的big低了些,于是乎开始在github看了下af的,本着开放包容的心态写个简单的测试看能否满足我原来接口环境的需要。由于之前的接口是用.net开发的部署的访问环境大多也是IIS的一套东西,神马basic,wiondows,ntlm验证。这里重点说下NTLM验证

http://xxxx.xxxx.com:8888/MobileService/MobileHandler.ashx?action=GetHomeData,历史原因不是restful风格的;访问这个地址的时候需要过NTLM验证后,才能进行后面的比如表单值提交等等。

ASI里面的两条语句可以让你忽略繁琐的设置,这也是它的强大之处。

[req setusername:]

[req setpassword:]


尽管我这里测试的是NTLM验证,这种方式对basic也就用的,细心的同学断点调试会发现这是asi封装了进行身份验证的最上层的方法,而在asi的实现部分(nsurlconnection中的回调方法)会先去判断不是ntlm还是basic然后传对应的“凭证”。

那么如果在af(version:2.5)里面的话我们还是需要多写句给operation设置凭证,即可。

    NSURLCredential *credential = [NSURLCredentialcredentialWithUser:[@"yourdomain\\"stringByAppendingString:@"zhaoyun"]password:@"pwd"persistence:NSURLCredentialPersistenceNone];

    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperationalloc] initWithRequest:req];

    [operationsetCredential:credential];

    [operationsetCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation,id responseObject) {

       NSLog(@"the result is %@",[operationresponseString]);

    }failure:^(AFHTTPRequestOperation *operation,NSError *error) {

       NSLog(@"the error is %@",error);

    }];


    参考地址:

http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=18385

0 0
原创粉丝点击