AFN同步异步请求
异步请求:
[objc] view plain copy
- -(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;
- }
同步请求:
[objc] view plain copy
- -(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;
- }
原生态的同步请求:
[objc] view plain copy
- -(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**;
- }
还没有评论,来说两句吧...