主要三步
1.url
2.request
3.connection
get请求
// 1.URL
NSString *urlStr = [NSString stringWithFormat:@"http://www.baidu.com/?userName=%@&password=%@",self.userName.text,self.userPwd.text];
NSURL *url = [NSURL URLWithString:urlStr];
// 2. request
NSURLRequest *request = [NSURLRequest requestWithURL:url];
// 3. connection
// 1>登陆完成之前 ,不能做后续工作,
// 2> 登陆过程中 ,可以允许用户干点别的会更好
// 3>让登陆在其他现程中进行。就不会阻塞主线程的工作
// 4> 结论:登陆也是异步访问,中间需要阻塞住
// 在并行队列中 用同步方法, 阻塞后续的执行!
[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];
NSLog(@"%@ ,,, %@",str, [NSThread currentThread]);
// 更新界面
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
self.loginResult.text = @"登陆完成";
}];
}
}];
NSLog(@"come here %@", [NSThread currentThread]);
}就这么简单
post 请求和GET请求区别
多了
注:添加东西要用 NSMutableURLRequest 添加数据用它 不添加用NSURLRequest ,不然request.HTTPMethod = @"POST";// 默认是GET 请求会报错
// Post?
request.HTTPMethod = @"POST";// 默认是GET 请求
// 数据体?
NSString *str = [NSString stringWithFormat:@"username=%@&password=%@", self.userName.text, self.userPwd.text];
request.HTTPBody = [str dataUsingEncoding:NSUTF8StringEncoding];
总结:GET & POST
1.GET
1>URL
2>request
3>connection
2.POST
1>URL
2>request
多了
1. request.HTTPMethod = @"POST";// 默认是GET 请求
2. NSString *str = [NSString stringWithFormat:@"username=%@&password=%@", self.userName.text, self.userPwd.text];
3. request.HTTPBody = [str dataUsingEncoding:NSUTF8StringEncoding];
3>connection