NSMutableURLRequest Http 请求 同步 异步
#pragma mark get country code//同步
-(void)getFKjsonCountryCode
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, ), ^{ NSString *urlString = [NSString stringWithFormat:@"http://www.baidu.com"];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
//post
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"ios" forHTTPHeaderField:@"X-Channel"];
[request setValue:@"" forHTTPHeaderField:@"X-APP-ID"];
NSHTTPURLResponse* urlResponse = nil;
NSError *error = nil;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
//NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSDictionary *countryDic = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error];
if ([urlResponse statusCode] >= && [urlResponse statusCode] < )
{
NSMutableArray * countryArr = [[countryDic objectForKey:@"data"]objectForKey:@"phone_codes"];
if(countryArr)
{
for(int i = ; i<[countryArr count]; i++)
{
NSLog(@"countryCode:%@ %@",[[countryArr objectAtIndex:i]objectForKey:@"country"],[[countryArr objectAtIndex:i]objectForKey:@"code"]);
}
}
// NSLog(@"12:%@",[[[[weatherDic objectForKey:@"data"]objectForKey:@"phone_codes"]objectAtIndex:0]objectForKey:@"country"]);
}
else
{ } });
}
#pragma mark get country code //异步
-(void)getFKjsonCountryCodeAsync
{
NSString *urlString = [NSString stringWithFormat:@"http://www.baidu.com"];
// 初始化请求
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
// 设置
[request setURL:[NSURL URLWithString:urlString]];
[request setCachePolicy:NSURLRequestUseProtocolCachePolicy]; // 设置缓存策略
[request setTimeoutInterval:20.0]; // 设置超时
[request setHTTPMethod:@"POST"];
//...... // receivedData = [[NSMutableData alloc] initData: nil];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (connection == nil) {
NSLog(@"errors");
// 创建失败
return;
}
} // 收到回应
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSLog(@"receive the response"); }
// 接收数据
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{ NSError *error = nil;
NSDictionary *countryDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
NSMutableArray * countryArr = [[countryDic objectForKey:@"data"]objectForKey:@"phone_codes"];
if(countryArr)
{ for(int i = ; i<[countryArr count]; i++)
{
NSLog(@"countryCode:%@ %@",[[countryArr objectAtIndex:i]objectForKey:@"country"],[[countryArr objectAtIndex:i]objectForKey:@"code"]);
}
} }
// 数据接收完毕
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{ NSLog(@"finishLoading");
}
// 返回错误
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{ NSLog(@"Connection failed: %@", error);
}
NSMutableURLRequest Http 请求 同步 异步的更多相关文章
- ExtJS4 ajax请求同步异步问题
今天在写代码过程中遇到一个奇怪的问题.事情是这种,我写了一个简单的页面用来删除选中的用户,请看以下: 由于后台的servlet的代码实现了依据用户名来删除一条记录.所以我在前台的ExtJS代码里面用了 ...
- Objective-C Http常用API 同步请求与异步请求
开发iOS应用要调用Http接口.获取Http资源,有一套比较成熟的框架ASIHTTPRequest.而我还是比较喜欢使用原始一点的 API,而它跟其他的面向对象语言有许多共通之处.本文分同步请求和异 ...
- 【Objective-C】Http常用API、同步请求与异步请求[转]
比较实用, 转载保存 开发iOS应用要调用Http接口.获取Http资源,有一套比较成熟的框架ASIHTTPRequest.而我还是比较喜欢使用原始一点的API,而它跟其他的面向对象语言有许多共通之处 ...
- AJAX请求详解 同步异步 GET和POST
AJAX请求详解 同步异步 GET和POST 上一篇博文(http://www.cnblogs.com/mengdd/p/4191941.html)介绍了AJAX的概念和基本使用,附有一个小例子,下面 ...
- 详细解读XMLHttpRequest(一)同步请求和异步请求
本文主要参考:MDN XMLHttpRequest 让发送一个HTTP请求变得非常容易.你只需要简单的创建一个请求对象实例,打开一个URL,然后发送这个请求.当传输完毕后,结果的HTTP状态以及返回的 ...
- OKHttp源码学习同步请求和异步请求(二)
OKHttp get private void doGet(String method, String s) throws IOException { String url = urlAddress ...
- 同步请求和异步请求的区别,ajax异步请求如何理解
同步请求和异步请求的区别 先解释一下同步和异步的概念 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的 ...
- 从零开始学 Web 之 Ajax(五)同步异步请求,数据格式
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- 第106天:Ajax中同步请求和异步请求
同步请求和异步请求的区别 1.同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 用户填写所有信息后,提交给服务器,等待服务器的回应(检验数据),是一次性的.信息错误又要重新 ...
随机推荐
- SAP BAPI一览 史上最全
全BADI一览 List of BAPI's BAPI WG Component Function module name Description Description Obj. Ty ...
- 在ASP.NET MVC下有关上传图片脏数据的解决方案
在"在ASP.NET MVC下实现单个图片上传, 客户端服务端双重限制图片大小和格式, 服务端裁剪图片"中,已经实现了在客户端和服务端限制图片大小和格式,以及在服务端裁剪图片.但还 ...
- 在ASP.NET MVC中使用Knockout实践05,基本验证
本篇体验View Model验证.Knockout的subscribe方法能为View Model成员注册验证规则. @{ ViewBag.Title = "Index"; Lay ...
- layoutSubviews 在什么情况下会被触发
layoutSubviews在以下情况下会被调用: 1.init初始化不会触发layoutSubviews 2.addSubview会触发layoutSubviews 3.设置view的Frame会触 ...
- ArcGIS Engine Maplex Label(标注)使用一例(转)
/// <summary> /// MaplexEngine标注 /// </summary> /// <param name="pGeoFeatLyr&quo ...
- WordPress主题开发:更换后台编辑器
这里我更换为KindEditor 1.下载插件 https://wordpress.org/plugins/kindeditor-for-wordpress/ 2.解压至wordpress目录下的/w ...
- ASP.NET MVC:模块化/插件式文章汇总
方案 Shazwazza | Developing a plugin framework in ASP.NET MVC with medium trust 基于ASP.NET MVC3 Razor的模 ...
- PetaPoco:SkipTake 和 Page 中的 OrderBy 子句不支持 “[]” 的解决办法
PetaPoco 的 SkipTake 和 Page 方法内部采用了内联视图,而内联视图是不支持 OrderBy 的,因此 PetaPoco 对传入的 SQL 进行分析,对 OrderBy 子句进行分 ...
- resin 4.0.xx 版破解方法
how to crack resin 4.0.2x resin 4.0.3x. 工具:jd http://jd.benow.ca/ 利用jd打开resin 4.0.xx目录下的lib/pro.jar ...
- script标签加载顺序(defer & async)
script 拥有的属性 async:可选,表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本.只对外部脚本文件有效. charset:可选.表示通过 src 属性指 ...