#pragma mark -同步GET请求

- (IBAction)synGet:(id)sender

{

//第一步,创建URL

NSURL *url=[[NSURL alloc]initWithString:@"http://www.weather.com.cn/data/sk/101010100.html"];

//第二步,通过URL创建网络请求

NSURLRequest *request=[[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60];

//NSURLRequest初始化方法第一个参数:请求访问路径,第二个参数:缓存协议,第三个参数:网络请求超时时间(秒)

//    其中缓存协议是个枚举类型包含:

//    NSURLRequestUseProtocolCachePolicy(基础策略)

//    NSURLRequestReloadIgnoringLocalCacheData(忽略本地缓存)

//    NSURLRequestReturnCacheDataElseLoad(首先使用缓存,如果没有本地缓存,才从原地址下载)

//    NSURLRequestReturnCacheDataDontLoad(使用本地缓存,从不下载,如果本地没有缓存,则请求失败,此策略多用于离线操作)

//    NSURLRequestReloadIgnoringLocalAndRemoteCacheData(无视任何缓存策略,无论是本地的还是远程的,总是从原地址重新下载)

//    NSURLRequestReloadRevalidatingCacheData(如果本地缓存是有效的则不下载,其他任何情况都从原地址重新下载)

//第三步,连接服务器

NSURLResponse *response=nil;

NSError *error=nil;

NSData *received=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

NSString *str=[[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];

NSLog(@"%@",str);

}

#pragma mark -同步POST请求

- (IBAction)synPost:(id)sender

{

NSURL *url=[NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];

NSMutableURLRequest *request=[[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

[request setHTTPMethod:@"POST"];//设置请求方式为POST,默认为GET

NSString *str=@"type=focus-c";//设置参数

NSData *data=[str dataUsingEncoding:NSUTF8StringEncoding];

[request setHTTPBody:data];

NSData *received=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSString *str1=[[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];

NSLog(@"%@",str1);

}

//异步GET请求

-(void)a{

NSURL *url=[NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];

NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];

}

//异步POST请求

-(void)b{

NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

[request setHTTPMethod:@"POST"];

NSString *str = @"type=focus-c";

NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

[request setHTTPBody:data];

NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];

}

//异步请求的代理方法

//接收到服务器回应的时候调用此方法

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

{

NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;

NSLog(@"%@",[res allHeaderFields]);

self.receiveData = [NSMutableData data];

}

//接收到服务器传输数据的时候调用,此方法根据数据大小执行若干次

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

{

self.receiveData appendData:data];

}

//数据传完之后调用此方法

-(void)connectionDidFinishLoading:(NSURLConnection *)connection

{

NSString *receiveStr = [[NSString alloc]initWithData:self.receiveData encoding:NSUTF8StringEncoding];

NSLog(@"%@",receiveStr);

}

//网络请求过程中,出现任何错误(断网,连接超时等)会进入此方法

-(void)connection:(NSURLConnection *)connection

didFailWithError:(NSError *)error

{

NSLog(@"%@",[error localizedDescription]);

}

转载于:https://www.cnblogs.com/ioschen/p/3290510.html

同步和异步GET,POST请求相关推荐

  1. ajax背景、ajax对象、ajax状态、ajax与http、ajax请求数据接口、同步与异步、ajax请求XML数据、封装ajax函数、artTemplate简介、同源策略和跨域请求、JSONP

    AJAX简介: ajax背景: 1.AJAX(Asynchronous JavaScript And Xml)异步的 JavaScript 和 XML:ajax是浏览器提供的一套API,最早出现在谷歌 ...

  2. http 请求 与其同步与异步请求的通透讲解

    http请求可以是基于webkit的浏览器或者web组件如:webview(在移动平台,android iOS等)发送的:也可以是任何程序或者代码段发出的:也可以这么说任何程序都可以自主发送http. ...

  3. AJAX怎么实现同步请求?Ajax同步和异步请求有什么区别以及使用场景有哪些?

    一.AJAX怎么实现同步请求? ajax请求我们分为同步请求和异步请求,但是默认的都是异步请求,那么,当我们想用ajax同步请求时,我们该如何去实现这个同步请求呢?接下来的这篇文章就来给大家介绍一下关 ...

  4. 半同步半异步模式 -------一个架构模式,清晰的结构,高效并发的I/O

    译者: cuichaox@gmail.com 英文原文: http://www.cs.wustl.edu/~schmidt/PDF/HS-HA.pdf http://www.cs.wustl.edu/ ...

  5. OkHttpClient源码分析(一)—— 同步、异步请求分析和Dispatcher的任务调度

    OkHttpClient同步请求的执行流程和源码分析 同步请求示例 OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout ...

  6. iOS网络开发中的同步、异步和请求队列

    在iOS网络编程中,我们经常会遇到线程的同步和异步问题,同时为了对异步请求更加精准丰富的控制,我们还常常在iOS中使用请求队列,下面就来谈谈iOS开发中同步.异步以及请求队列的使用方法. 1. 同步意 ...

  7. 服务器与网页之间异步,在服务器端判断request来自Ajax请求(异步)还是传统请求(同步)...

    在一次做非常复杂的ajax应用时,如果一个会话已经超时,但是此时再通过ajax请求,那么ajax返回的则是一个登陆页面的html,那这下就惨了,页面上而已就乱了,那么,能否在Java端,如拦截器里判断 ...

  8. XMLHttpRequest同步和异步请求

    XMLHttpRequest 支持同步和异步通信.但是,一般来说,出于性能原因,异步请求应优先于同步请求. 同步请求阻止代码的执行,这会导致屏幕上出现"冻结"和无响应的用户体验. ...

  9. 【AJAX】请求原理 同步和异步

    一..AJAX概念 本质:使用JS提供的异步对象,在页面不刷新的情况下,发送http请求,得到http响应,实现页面的局部刷新,涉及到的技术HTML JS HTTP/HTTPS 接口 XML JSON ...

最新文章

  1. 外部的Navicat连接docker中的mysql
  2. jvm性能调优实战 -57数据日志分析系统的OOM问题排查
  3. python3学哪个版本好玩_python2和python3到底应该学哪个好?
  4. 10_InfluxDB常用函数(三)变换类函数(DERIVATIVE, DIFFERENCE,ELAPSED,MOVING_AVERAGE,NON_NEGATIVE_DERIVATIVE)等
  5. PHP两个字符串比较(人为出错),两字符串类型和数据表面相等,但strcmp()结果不为0...
  6. 交换两个局部变量Integer的值
  7. 2345电脑管家_2345软件管家下载|2345软件管家 2.0 官方正式版
  8. python数据可视化工具 pandas_Pandas数据可视化工具——Seaborn用法整理(下)
  9. Postman从入门到入门
  10. pdf增强锐化软件_安卓软件—CamScanner 扫描全能王
  11. VC 播放WAV文件
  12. 谈谈你对TCP三次握手和四次挥手的理解
  13. 概要设计说明书模板_实验报告的书写案例word模板
  14. altium designer(AD13)隐藏敷铜的方法
  15. K-均值聚类算法和二分K-均值算法
  16. 如何获取淘宝/天猫商品历史价格信息的API接口
  17. php 微信支付 ca证书,微信企业付款 CA证书出错,请登录微信支付商户平台下载证书...
  18. 前端工程师 后段工程师_如何像工程师一样思考
  19. 100行代码撸一个语音对话助手
  20. 理财就是理生活 —— 小白理财训练营(上)

热门文章

  1. python array函数_Python numpy.array函数方法的使用
  2. JZOJ 5623. 【NOI2018模拟4.2】program
  3. Linux中字符设备注册方式,3.4. 字符设备注册
  4. python中list的反转_Python实现list反转实例汇总
  5. java 对象创建过程_5种创建Java对象的方式
  6. 2022.2.22显示器连接器引脚信号定义2
  7. Codeforces 1254C/1255F Point Ordering (交互题)
  8. 2020-10-13 四元数用法(不讲原理,只讲计算规则)
  9. Excel中文字换行
  10. yarn add yarn global add