AFN发送同步异步请求

/ 0评 / 0

异步请求:

-(BOOL)getOnlyKey1  
{  
    NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];  
      
    __block bool isTrue = false;  
      
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];  
    NSString *urlstr = [NSString stringWithFormat:@"http://122.225.89.70:28080/try/check"];  
    NSURL *url = [NSURL URLWithString:urlstr];  
    NSDictionary *dic = @{@"imei":myUUIDStr,@"av":AppVersion};  
    [manager POST:urlstr parameters:dic success:^(AFHTTPRequestOperation *operation, id responseObject) {  
        MyLog(@"%@", operation.responseString);  
        NSRange range = [operation.responseString rangeOfString:@"\"msg\":\"0\""];  
        if (range.location != NSNotFound) {  
            isTrue = true;  
        }  
        if (!isTrue) {  
            SHOWALERT(@"错误", @"您需要联系开发人员");  
        }  
          
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {  
        MyLog(@"返回失败结果:%@", error.localizedFailureReason);  
        SHOWALERT(@"错误", @"请求开发人员服务器失败");  
        isTrue = true;  
    }];  
    return  isTrue;  
}  

同步请求:

-(BOOL)getOnlyKey2  
{  
    NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];  
    BOOL isTrue = false;  
    NSString *urlstr = [NSString stringWithFormat:@"http://122.225.89.70:28080/try/check"];  
    NSURL *url = [NSURL URLWithString:urlstr];  
    NSMutableURLRequest *urlrequest = [[NSMutableURLRequest alloc]initWithURL:url];  
    urlrequest.HTTPMethod = @"POST";  
    NSString *bodyStr = [NSString stringWithFormat:@"imei=%@&av=%@",myUUIDStr, AppVersion];  
    NSData *body = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];  
    urlrequest.HTTPBody = body;  
    AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlrequest];  
    requestOperation.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];  
    [requestOperation start];  
    [requestOperation waitUntilFinished];  
    MyLog(@"%@",requestOperation.responseString);  
    NSRange range = [requestOperation.responseString rangeOfString:@"\"msg\":\"0\""];  
    if (range.location != NSNotFound) {  
        isTrue = true;  
    }  
    if (!isTrue) {  
        SHOWALERT(@"错误", @"您需要联系开发人员");  
    }  
    return  isTrue;  
}  

原生态的同步请求:

-(BOOL)getOnlyKey  
{  
    NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];  
      
    //应用版本号  
    NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];  
    NSString* versionNum =[infoDict objectForKey:@"CFBundleVersion"];  
      
      
    NSString *urlString = [NSString stringWithFormat:@"http://122.225.89.70:28080/try/check"];  
    NSURL *url = [NSURL URLWithString:urlString];  
      
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];  
      
    [request setHTTPMethod:@"POST"];  
    NSString *bodyStr = [NSString stringWithFormat:@"imei=%@&av=%@",myUUIDStr, versionNum];  
    //将nstring转换成nsdata  
    NSData *body = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];  
    //MyLog(@"body data %@", body);  
    [request setHTTPBody:body];  
    NSURLResponse *response = nil;  
    NSError *error = nil;  
    //第二,三个参数是指针的指针,所有要用取址符,这个方法是同步方法。同步操作没有完成,后面的代码不会执行。  
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];  
      
    //    NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];  
    //    MyLog(@"返回结果是:%@", str);  
      
    if (error == nil) {  //接受到数据,表示工作正常  
        NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];  
        MyLog(@"%@",str);  
        NSRange range = [str rangeOfString:@"\"msg\":\"0\""];  
        if (range.location != NSNotFound) {  
            return true;  
        }else{  
            return false;  
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"出错鸟"  
                                                            message:@"您需要联系项目开发人员"  
                                                           delegate:nil  
                                                  cancelButtonTitle:@"确定"  
                                                  otherButtonTitles:nil];  
            [alert show];  
        }  
    }  
      
    if(error != nil || response == nil)  
    {  
        return false;  
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"错误"  
                                                        message:@"登陆失败,网络不稳定"  
                                                       delegate:nil  
                                              cancelButtonTitle:@"确定"  
                                              otherButtonTitles:nil];  
        [alert show];  
          
          
    }  
      
    return false;  
}  

评论已关闭。