【iOS-网络】使用异步的post请求

来源:互联网 发布:手术室小讲课知乎 编辑:程序博客网 时间:2024/05/03 23:54

异步请求有两种,可参考get请求数据

 // 2.1.设置请求路径    NSURL *url = [NSURL URLWithString:@"http://192.168.1.200:8080/MJServer/login"];    // 2.2.创建请求对象    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 默认就是GET请求    request.timeoutInterval = 5; // 设置请求超时    request.HTTPMethod = @"POST"; // 设置为POST请求    // 通过请求头告诉服务器客户端的类型    [request setValue:@"ios" forHTTPHeaderField:@"User-Agent"];    // 设置请求体    NSString *param = [NSString stringWithFormat:@"username=%@&pwd=%@", username, pwd];    request.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding];    // 2.3.发送请求    NSOperationQueue *queue = [NSOperationQueue mainQueue];    [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {  // 当请求结束的时候调用 (拿到了服务器的数据, 请求失败)        // 隐藏HUD (刷新UI界面, 一定要放在主线程, 不能放在子线程)        [MBProgressHUD hideHUD];        if (data) { // 请求成功            NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];            NSString *error = dict[@"error"];            if (error) { // 登录失败                [MBProgressHUD showError:error];            } else { // 登录成功                NSString *success =  dict[@"success"];                [MBProgressHUD showSuccess:success];            }        } else { // 请求失败            [MBProgressHUD showError:@"网络繁忙, 请稍后再试"];        }    }];
0 0
原创粉丝点击