今天刚刚自学完网络请求,现将两种请求方式总结如下
所有网络请求 统一使用异步请求
GET请求
1、URL
2、NSURLRequest
3、NSURLConnction 异步
自己搭建的本地服务器 ,没有安装服务器的可以安装一下,方便练习
#pragma mark-GET登录
- (void)getLogin{
// 1、URL
NSString *urlStr = [NSString stringWithFormat:@"http://localhost/login.php?username=%@&password=%@", self.userName.text, self.userPsw.text];
NSURL *url = [NSURL URLWithString:urlStr];
//2、request
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
if (connectionError == nil) {
// 将Data转成字符串
NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
// 更新界面
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
NSLog(@"登录完成");
}];
}
}];
POST请求
1、URL
2、NSMutableURLRequest
.httpMethod = @"POST";
.HTTPBody = [str dataUsingEncoding:NSUTF8StringEncoding];
3、NSURLConnction 异步
#pragma mark -POST登录
- (void)postLogin{
NSURL *url = [NSURL URLWithString:@"http://localhost/login.php"];
//请求(可变请求)
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
//默认是get请求
request.HTTPMethod = @"POST";
//数据体
NSString *str = [NSString stringWithFormat:@"username=%@&password=%@", self.userName.text, self.userPsw.text];
//将字符串转换成数据
request.HTTPBody = [str dataUsingEncoding:NSUTF8StringEncoding];
//连接 异步
[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
if (connectionError == nil) {
//将Data转成字符串
NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//更新界面
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
NSLog(@"%@",str);
}];
}
}];
}