iOS-登录认证/json解析

用户输入用户名和密码,点击登录。。。我们把用户名和密码(用post方式或者get方式,get方式多用于测试看你需要)传给服务器,服务器进行判断,然后返回一个接口给我们(这里服务器返回的json接口,正确就返回一个正确的接口给我们,错误就返回一个错误的接口给我们)。我们拿到接口去解析,判断是否登录成功做相应的操作。

关于json解析,可以网上找找资料先看看,我就只知道[]是数组,{}是字典,iOS有自带的json解析的。

以前一直说接口文档,接口什么,可自己从来都是模糊的,比如说一个类的接口,我就认为是这个类的方法。。可是,我的boss给我的登录接口的文档的时候,我才知道,哦,接口文档原来是这样子的呀。。嘻嘻。。。吐舌头

 
  1. [  
  2.     {  
  3.         "result": {  
  4.             "RUrl":   "http://localhost/pad_4078_B7DA_676D3FE52763",  
  5.             "errMsg""",  
  6.             "result""OK",  
  7.             "sid""B67D78_B7DA_676D3FE52763"  
  8.         }  
  9.     }  
  10. ]  
  11.   
  12.    jsondata[0][‘result’].result:  
  13.    OK,登录成功,打开RUrl  
  14.    FAIL,登录失败,取:errMsg  

 

 

(1)

  1. #import <UIKit/UIKit.h>  
  2. #import "ByValueUrl.h"  
  3. @interface LogInViewController : UIViewController <UITextFieldDelegate>{  
  4.   
  5.     UIActivityIndicatorView *activityIndicatorView;  
  6.     UITextField *userNameTF;//用户名  
  7.     UITextField *passWordTF;//密码  
  8.     NSDictionary *resultDic2;  
  9.       
  10.     UIView *view1;//等待转圈的view  
  11. }  
  12.   
  13.   
  14. @property (weak, nonatomic) IBOutlet UIButton *loginButton;//登录按钮  
  15. @property (strong,nonatomicNSString *homeURL;//登录成功拿到的url  
  16.   
  17.   
  18. @end  


(2)

  1. - (IBAction)login:(id)sender {  
  2.       
  3.     [self initaAtivityIndicatorView];  
  4.     [activityIndicatorView startAnimating];//开始动画  
  5.       
  6. //    定时器(设置时间为3秒)  
  7. //    [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(timerFired:) userInfo:nil repeats:NO];  
  8.       
  9.   //加载一个NSURL对象  
  10.     NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://192.168.9.1/pb/l?user=%@&pwd=%@",userNameTF.text,passWordTF.text]];//这里的url输入自己的就可以,这里用的get方式,get方式都是明文,用post方式好一点  
  11.     NSLog(@"userNameTF:%@-",userNameTF.text);  
  12.     NSLog(@"passWordTF:%@-",passWordTF.text);  
  13.     NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url];  
  14.       
  15.     NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; //将请求的url数据放到NSData对象中  
  16.     NSString *dataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];  
  17.     NSLog(@"str-%@",dataStr);  
  18.     
  19.      //IOS5自带解析类NSJSONSerialization从response中解析出数据放到字典中  
  20.     NSError *error;  
  21.     NSMutableArray *array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];  
  22.     NSDictionary *resultDic1 = [array objectAtIndex:0];  
  23.     resultDic2 = [resultDic1 objectForKey:@"result"];  
  24.     NSString *str = [resultDic2 objectForKey:@"result"];  
  25.     NSLog(@"str -%@",str);  
  26.          
  27.     if ([str isEqualToString:@"FAIL"] ) {  
  28.         NSLog(@"shibai-%@",str);  
  29.         //    定时器(设置时间为3秒)  
  30.         [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(logInFail) userInfo:nil repeats:NO];  
  31.          
  32.     }else{  
  33.           
  34.         self.homeURL = [resultDic2 objectForKey:@"RUrl"];  
  35.   
  36.         NSLog(@"url - %@",self.homeURL);  
  37.           
  38.         //    定时器(设置时间为3秒)  
  39.         [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(logInOK) userInfo:nil repeats:NO];  
  40.           
  41.        
  42.           
  43.     }  
  44.       
  45.       
  46. }  
  47.   
  48. //登录失败  
  49. -(void)logInFail {  
  50.       
  51.     [activityIndicatorView stopAnimating];//结束动画  
  52.       
  53.       
  54.     NSString *msg = [resultDic2 objectForKey:@"errMsg"];  
  55.     UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"登录失败" message:msg delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil nil];  
  56.     [alert show];  
  57.       
  58.     [view1 removeFromSuperview];  
  59.      
  60.   
  61. }  
  62.   
  63. //登录成功  
  64. -(void)logInOK{  
 
  1. 跳转到首页就可以了  
 
    1. [activityIndicatorView stopAnimating];//结束动画 
posted @ 2013-11-11 10:02  苹果吧  阅读(8210)  评论(1编辑  收藏  举报