AFN同步异步请求
异步请求:
-(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(@"错误", @"请求开发者server失败");
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;
}
AFN同步异步请求的更多相关文章
- Springmvc中 同步/异步请求参数的传递以及数据的返回
转载:http://blog.csdn.net/qh_java/article/details/44802287 注意: 这里的返回就是返回到jsp页面 **** controller接收前台数据的方 ...
- libcurl的封装,支持同步异步请求,支持多线程下载,支持https
最近在做一个项目,需要用到http get post等 需求分析需要做到同步和异步,异步请求的返回以可选的回调通知的方式进行. 本人以Linux为例,一步一步的来实现. 配置并且编译libcurl我以 ...
- 从零开始学 Web 之 Ajax(五)同步异步请求,数据格式
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- http 同步异步请求
在用户交互模式下,当你改变表单中某个组件的值时, 譬如你填写名字.修改性别.选择爱好的时候,浏览器和服 务器至今没有发生任何交互,只有当你点击submit的时候, 浏览器才会把你的参数,也就是form ...
- springmvc中同步/异步请求参数的传递以及数据的返回
注意: 这里的返回就是返回到jsp页面 **** controller接收前台数据的方式,以及将处理后的model 传向前台***** 1.前台传递数据的接受:传的属性名和javabean的属性相同 ...
- okhttp框架源码分析从同步&异步请求使用开始
对于okhttp在如今项目中的普及程度已经不言而喻啦,基本上如今网络请求都会基于它去进行封装,而非前几年用Android的网络框架HttpURLConnection和Apache HttpClient ...
- jQuery基础(Ajax,load(),getJSON(),getScript(),post(),ajax(),同步/异步请求数据)
1.使用load()方法异步请求数据 使用load()方法通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为: load(url,[data],[callba ...
- AJAX请求详解 同步异步 GET和POST
AJAX请求详解 同步异步 GET和POST 上一篇博文(http://www.cnblogs.com/mengdd/p/4191941.html)介绍了AJAX的概念和基本使用,附有一个小例子,下面 ...
- 普通B/S架构模式同步请求与AJAX异步请求区别(个人理解)
在上次面试的时候有被问到过AJAX同步与异步之间的概念问题,之前没有涉及到异步与同步的知识,所以特意脑补了一下,不是很全面... 同步请求流程:提交请求(POST/GET表单相似的提交操作)---服务 ...
随机推荐
- nginx新建nginx_fzjh.conf文件,不使用默认配置文件
worker_processes 4; events{ worker_connections 1024; } http{ server { listen 80; server_name myserve ...
- 对于asp.net mvc异步查询
如何做MVC异步查询,做列表页面. 查询是项目中必不可少的工作,而且不同的项目不同的团队,都有自己的简单方法.Asp.net mvc 有自己独特的优势,下面是结合mvc实现一个产品列表的Demo. 问 ...
- CentOS 7 与老版本CentOS防火墙配置的区别
一.CentOS 7 以下版本防火墙的配置: 1.开放80,22,8080 端口/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT/sbin/ipt ...
- jQuery碎语(1) 基础、选择要操作的元素、处理DOM元素
1.基础 jquery对象集: $():jquery对象集合 获取jquery对象集中的元素: 使用索引获取包装器中的javascript元素:var temp = $('img[alt]')[0] ...
- VS 2010快捷键
1 注释选中的部分 Ctrl+K,C 2 取消注释的部分 Ctrl+K,U 3 设置断点 F9 取消此行的断点就再按一次F9 4 取消全部断点 ...
- Java实现归并排序(转)
Java实现归并排序 本文转自https://www.cnblogs.com/of-fanruice/p/7678801.html 归并排序 (merge sort) 是一类与插入排序.交换排序.选 ...
- cron表达式举例
1.quartz定时任务时间设置描述(2011-03-03 16:23:50)转载▼标签: quartz时间it 分类: 凌乱小记 这些星号由左到右按顺序代表 : * * * * * * * 格式: ...
- synchronized与lock,哪个效率更高
Java在一开始就提供了synchronized关键字,用于多线程之间的同步.它使用简便,不会出现拿锁之后不归还的情况,可以避免一些编程错误. 而jdk5时提供的concurrent包里,有一个Loc ...
- Oracle 10g AND Oracle 11g手工建库案例--Oracle 10g
Oracle 10g AND Oracle 11g手工建库案例--Oracle 10g 系统环境: 操作系统: RedHat EL6 Oracle: Oracle 10g and Oracle 11 ...
- CVPR 2015 papers
CVPR2015 Papers震撼来袭! CVPR 2015的文章可以下载了,如果链接无法下载,可以在Google上通过搜索paper名字下载(友情提示:可以使用filetype:pdf命令). Go ...