NSURLConnection — GET请求的第二种方式

来源:互联网 发布:java interrupt sleep 编辑:程序博客网 时间:2024/05/29 07:03
////  ViewController.m//  NSURLConnection — GET请求//#import "ViewController.h"@interface ViewController () <NSURLConnectionDataDelegate>@property (weak, nonatomic) IBOutlet UITextField *usernameField;@property (weak, nonatomic) IBOutlet UITextField *pwdField;- (IBAction)login;/** *  用来存放服务器返回的所有数据 */@property(nonatomic,strong)NSMutableData *responseData;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];}- (IBAction)login{    //1.表单验证(输入验证)    NSString *username = self.usernameField.text;    if (username.length == 0) { //没有输入用户名        //弹框提示        return;    }    NSString *pwd = self.pwdField.text;    if (pwd.length == 0) { //没有输入密码        //弹框提示(请输入密码)        return;    }            //添加遮罩(防止用户继续操作UI)    //todo... [MBProgressHUB showMessage@"正在拼命登录中..."];        //2.发送请求给服务器(带上账户和密码)        //2.1设置请求路径    NSString *str = [NSString stringWithFormat:@"http://localhost/login.php?username=%@&pwd=%@",username,pwd];
<p class="p1"><span class="s1">//</span><span class="s2">转码</span></p><p class="p2"><span class="s3">    str = [str </span><span class="s1">stringByAddingPercentEscapesUsingEncoding</span><span class="s3">:</span><span class="s1">NSUTF8StringEncoding</span><span class="s3">];</span></p>    NSURL *url = [NSURL URLWithString:str];        //2.2创建请求对象(默认就是GET)    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];    request.timeoutInterval = 5; //超时时间        //2.3发送请求    NSURLConnection *conn = [NSURLConnection connectionWithRequest:request delegate:self];    [conn start]; //异步}#pragma mark - NSURLConnectionDataDelegate/** *  请求失败的时候调用 */- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{    //请求超时、断网、没有网。一般都是客户端错误        //移除遮罩 [MBProgressHUB hideHUB];}/** *  当接受到服务器的响应的就会调用 */- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{    //服务器有响应了        //初始化    self.responseData = [NSMutableData data];}/** *  当接受到服务器返回的数据就会调用 */- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{    //可能会被调用多次,每次只会传递部分数据        //拼接(收集)数据    [self.responseData appendData:data];}/** *  当服务器的数据接受完毕后就会调用 */- (void)connectionDidFinishLoading:(NSURLConnection *)connection{    //移除遮罩 [MBProgressHUB hideHUB];        //解析最后的数据    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:self.responseData options:NSJSONReadingMutableLeaves error:nil];    NSLog(@"%@",dict);}@end

0 0