美文网首页
iOS自己用nsurlssion必须加线程

iOS自己用nsurlssion必须加线程

作者: 坤哥lqk | 来源:发表于2017-02-14 11:22 被阅读13次

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    dispatch_async(queue, ^{

    AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];

    NSURL * url = [NSURL URLWithString:urlstring];

    NSURLRequest * request = [NSURLRequest requestWithURL:url];

    //添加deader

    NSMutableURLRequest * mutableRequest = [request mutableCopy];

    [mutableRequest addValue:[NSString stringWithFormat:@"JSESSIONID=%@",myDelegate.sessionId] forHTTPHeaderField:@"Cookie"];

    NSLog(@"单独打印sessionid%@",myDelegate.sessionId);

    request = [mutableRequest copy];

    NSLog(@"打印header验证%@", request.allHTTPHeaderFields);

    NSURLSessionDataTask * datatask = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

    NSStringEncoding enc =CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000 );

    NSString *retStr =[[NSString    alloc]initWithData:data encoding:enc];

    NSLog(@"待办待办%@",retStr);

    NSData * jsonData = [retStr dataUsingEncoding:NSUTF8StringEncoding];

    NSArray  * untakenArray;//待办list数组

    NSDictionary * json = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:nil];

    if (json == nil)

    {

    NSLog(@"%@",@"json解析错误");

    }

    NowPage ++;

    untakenArray = [json objectForKey:@"gwListInfos"];

    for (NSDictionary * dict in untakenArray) {

    UNtakenModel * untakemodel = [[UNtakenModel alloc]init];

    [untakemodel setValuesForKeysWithDictionary:dict];

    [_UNTakelistArray addObject:untakemodel];

    }

    NSLog(@"数组个数%lu",(unsigned long)self.UNTakelistArray.count);

    dispatch_async(dispatch_get_main_queue(), ^{

    /**

    *  通知主线程刷新

    */

    if (untakenArray != nil) {

    [self.UNTakenListView reloadData];

    [self.UNTakenListView.mj_footer endRefreshing];

    }

    else

    {

    NSString *title = NSLocalizedString(@"提示", nil);

    NSString *message = NSLocalizedString(@"用户名或密码错误", nil);

    NSString *cancelButtonTitle = NSLocalizedString(@"取消", nil);

    NSString *otherButtonTitle = NSLocalizedString(@"确定", nil);

    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];

    // Create the actions.

    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:cancelButtonTitle style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {

    NSLog(@"The \"Okay/Cancel\" alert's cancel action occured.");

    }];

    UIAlertAction *otherAction = [UIAlertAction actionWithTitle:otherButtonTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {

    NSLog(@"The \"Okay/Cancel\" alert's other action occured.");

    }];

    // Add the actions.

    [alertController addAction:cancelAction];

    [alertController addAction:otherAction];

    [self presentViewController:alertController animated:YES completion:nil];

    }

    });

    }];

    [datatask resume];

    });

    相关文章

      网友评论

          本文标题:iOS自己用nsurlssion必须加线程

          本文链接:https://www.haomeiwen.com/subject/mgjxwttx.html