• 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];//结束动画 
  • 相关阅读:
    深港DJ好听的歌曲
    电调的相关知识
    CAD画图技巧经验
    第一期周二航拍视频分享 2017/07/10
    网站资料
    如何读懂零件图
    航拍技巧经验总汇
    乐迪AT9
    机器学习、数据挖掘、计算机视觉等领域经典书籍推荐
    Eclipse调试Java程序技巧
  • 原文地址:https://www.cnblogs.com/ios8/p/ios-login-json.html
Copyright © 2020-2023  润新知