首页 技术 正文
技术 2022年11月13日
0 收藏 755 点赞 3,708 浏览 2877 个字

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

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

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

  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.    jsondata[0][‘result’].result:
  12.    OK,登录成功,打开RUrl
  13.    FAIL,登录失败,取:errMsg

(1)

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

(2)

  1. – (IBAction)login:(id)sender {
  2. [self initaAtivityIndicatorView];
  3. [activityIndicatorView startAnimating];//开始动画
  4. //    定时器(设置时间为3秒)
  5. //    [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(timerFired:) userInfo:nil repeats:NO];
  6. //加载一个NSURL对象
  7. NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@”http://192.168.9.1/pb/l?user=%@&pwd=%@”,userNameTF.text,passWordTF.text]];//这里的url输入自己的就可以,这里用的get方式,get方式都是明文,用post方式好一点
  8. NSLog(@”userNameTF:%@-“,userNameTF.text);
  9. NSLog(@”passWordTF:%@-“,passWordTF.text);
  10. NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url];
  11. NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; //将请求的url数据放到NSData对象中
  12. NSString *dataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  13. NSLog(@”str-%@”,dataStr);
  14. //IOS5自带解析类NSJSONSerialization从response中解析出数据放到字典中
  15. NSError *error;
  16. NSMutableArray *array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
  17. NSDictionary *resultDic1 = [array objectAtIndex:0];
  18. resultDic2 = [resultDic1 objectForKey:@”result”];
  19. NSString *str = [resultDic2 objectForKey:@”result”];
  20. NSLog(@”str -%@”,str);
  21. if ([str isEqualToString:@”FAIL”] ) {
  22. NSLog(@”shibai-%@”,str);
  23. //    定时器(设置时间为3秒)
  24. [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(logInFail) userInfo:nil repeats:NO];
  25. }else{
  26. self.homeURL = [resultDic2 objectForKey:@”RUrl”];
  27. NSLog(@”url – %@”,self.homeURL);
  28. //    定时器(设置时间为3秒)
  29. [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(logInOK) userInfo:nil repeats:NO];
  30. }
  31. }
  32. //登录失败
  33. -(void)logInFail {
  34. [activityIndicatorView stopAnimating];//结束动画
  35. NSString *msg = [resultDic2 objectForKey:@”errMsg”];
  36. UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@”登录失败” message:msg delegate:self cancelButtonTitle:@”OK” otherButtonTitles: nil nil];
  37. [alert show];
  38. [view1 removeFromSuperview];
  39. }
  40. //登录成功
  41. -(void)logInOK{
  1. 跳转到首页就可以了
    1. [activityIndicatorView stopAnimating];//结束动画
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,985
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,501
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,345
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,128
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,763
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,839