网络:登录界面搭建与数据保存
2016-04-13 08:19
671 查看
#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UITextField *usernameField; @property (weak, nonatomic) IBOutlet UITextField *passwordField; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 读取保存的用户信息 [self loadUserInfo]; // self.passwordField.keyboardAppearance=NO; // self.passwordField.keyboardAppearance=UIKeyboardAppearanceLight; } - (IBAction)login:(id)sender { // 在真实开发中,项目名或者文件夹尽量不要使用中文 NSString *URLString = [NSString stringWithFormat:@"http://localhost/login.php"]; // NSURL 在工作中,不止是php为后缀,还有可能是其他的,jsp,asp,.do,.action,不管什么后缀,在我们眼里都是一样的 NSURL *url = [NSURL URLWithString:URLString]; // NSURLRequest NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 请求默认是GET,如果要使用POST必须是可变的请求 // 设置POST请求 [request setHTTPMethod:@"POST"]; // 拼接POST参数 NSString *params = [NSString stringWithFormat:@"username=%@&password=%@",self.usernameField.text,self.passwordField.text]; // 设置POST参数,不需要百分号转码 [request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]]; // NSURLConnection [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) { // NSLog(@"%@",response); id result = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; NSLog(@"%@",result); // 如果登录成功,保存用户信息 // 判断返回结果是否有userId,如果有登录成功,如果没有,登录失败 if (result[@"userId"]) { [self saveUserInfo]; } }]; } #define CZUserName @"CZUserName" #define CZPassword @"CZPassword" // 保存用户信息 - (void)saveUserInfo { // 使用偏好设置保存用户信息 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // NSLog(@"%@",NSHomeDirectory()); // 保存用户名 [defaults setObject:self.usernameField.text forKey:CZUserName]; // 保存密码 [defaults setObject:self.passwordField.text forKey:CZPassword]; // 同步 iOS8 以后不需要调用同步就可以,但是如果需要适配iOS7还是需要调用 // [defaults synchronize]; } // 读取用户信息 - (void)loadUserInfo { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; self.usernameField.text = [defaults objectForKey:CZUserName]; self.passwordField.text = [defaults objectForKey:CZPassword]; } @end
相关文章推荐
- Android studio 中使用xUtils报错找不到org.apache.http.client.methods.HttpRequestBase的类文件
- 【黑马Android】(05)短信/查询和添加/内容观察者使用/子线程网络图片查看器和Handler消息处理器/html查看器/使用HttpURLConnection采用Post方式请求数据/开源项目
- SpringMVC 中HttpMessageConverter简介和Http请求415 Unsupported Media Type的问题 对比项目用的
- 基于java的网络抓包方法
- http头中的host字段详解
- Linux基础网络设置
- iOS开发之网络编程篇二:Get,Post请求差异及用法
- qperf测量网络带宽和延迟
- 安装完Android Studio出现Internal error. Please report to https://code.google.com/p/android/issues
- iOS开发之网络编程篇一:网络开发基本概念介绍
- Http会话cookie session
- VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT
- VMware虚拟机网络详解(包括多网卡)
- 生产环境常见的HTTP状态码列表
- TCP协议疑难杂症全景解析
- HttpURLConnection请求返回数据乱码!
- HttpURLConnection(代码实现http请求)
- 网络营销团队怎么留住人才 企业文化建设很重要
- TCP 的那些事儿
- Muduo网络库源码分析(三)线程间使用eventfd通信和EventLoop::runInLoop系列函数