Get 和 Post方法的登录

时间:2023-03-09 17:25:30
Get 和 Post方法的登录

1. Get & Post

1> Get请求直接从服务器拿数据

性能好

效率高

在地址栏会显示所有的参数,从直观上安全性不高

由于Get不提交数据给服务器,因此实际的安全性高

实际应用:数据查询

2> Post请求,需要先弄一个数据体,将数据体提交给服务器,才能获取到服务器的响应

性能不好

效率低

不会在地址栏显示参数,直观上安全性高

由于Post请求会提交数据给服务器,有可能会存在安全漏洞,实际的安全性不高

实际应用:用户登录、上传文件等需要与服务器进行数据交互的操作,才需要使用到Post操作

1.Get方法

 #pragma mark 返回Get登录请求
- (NSURLRequest *)getLoginRequest
{
NSString *userName = _userName.text;
NSString *password = [_password.text companyMD5];
NSLog(@"%@", [_password.text MD5]);
NSLog(@"%@", password); // 1. 网络地址URL
NSString *urlString = [NSString stringWithFormat:@"http://192.168.3.251/~apple/itcast/login.php?username=%@&password=%@", userName, password ];
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url = [NSURL URLWithString:urlString]; // 2. 请求
// 1> url
// 2> 缓存策略
// 3> 超时时长
// 提示:因为网络的状态是未知的,因此要使用URLRequest一定要指定超时时长
// 否则会严重影响用户体验!
return [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:2.0f]; } 25
#pragma mark Get方法登录
- (IBAction)getLogin
{
// 1. 建立请求
NSURLRequest *request = [self getLoginRequest]; // 3. 连接
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self]; // 4. 启动连接
[connection start]; // 5. 实例化接收数据
_serverData = [NSMutableData data];
}

2.Post方法

 - (IBAction)postLogin
{
NSString *userName = _userName.text;
NSString *password = _password.text; // 1. 网络地址URL
NSString *urlString = [NSString stringWithFormat:@"http://192.168.3.251/~apple/itcast/login.php"]; NSURL *url = [NSURL URLWithString:urlString]; // 2. 请求,生成数据体添加到请求
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 1) 指定网络请求的方法
// 默认是GET,POST请求通常用在用户登录,上传文件
request.HTTPMethod = @"POST"; // 2) 生成数据体
NSString *bodyStr = [NSString stringWithFormat:@"username=%@&password=%@", userName, password];
// 转换成NSData
request.HTTPBody = [bodyStr dataUsingEncoding:NSUTF8StringEncoding]; // 3. 连接
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self]; // 4. 启动连接
[connection start]; // 5. 实例化接收数据
_serverData = [NSMutableData data];
}