同步和异步GET,POST请求
#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请求相关推荐
- ajax背景、ajax对象、ajax状态、ajax与http、ajax请求数据接口、同步与异步、ajax请求XML数据、封装ajax函数、artTemplate简介、同源策略和跨域请求、JSONP
AJAX简介: ajax背景: 1.AJAX(Asynchronous JavaScript And Xml)异步的 JavaScript 和 XML:ajax是浏览器提供的一套API,最早出现在谷歌 ...
- http 请求 与其同步与异步请求的通透讲解
http请求可以是基于webkit的浏览器或者web组件如:webview(在移动平台,android iOS等)发送的:也可以是任何程序或者代码段发出的:也可以这么说任何程序都可以自主发送http. ...
- AJAX怎么实现同步请求?Ajax同步和异步请求有什么区别以及使用场景有哪些?
一.AJAX怎么实现同步请求? ajax请求我们分为同步请求和异步请求,但是默认的都是异步请求,那么,当我们想用ajax同步请求时,我们该如何去实现这个同步请求呢?接下来的这篇文章就来给大家介绍一下关 ...
- 半同步半异步模式 -------一个架构模式,清晰的结构,高效并发的I/O
译者: cuichaox@gmail.com 英文原文: http://www.cs.wustl.edu/~schmidt/PDF/HS-HA.pdf http://www.cs.wustl.edu/ ...
- OkHttpClient源码分析(一)—— 同步、异步请求分析和Dispatcher的任务调度
OkHttpClient同步请求的执行流程和源码分析 同步请求示例 OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout ...
- iOS网络开发中的同步、异步和请求队列
在iOS网络编程中,我们经常会遇到线程的同步和异步问题,同时为了对异步请求更加精准丰富的控制,我们还常常在iOS中使用请求队列,下面就来谈谈iOS开发中同步.异步以及请求队列的使用方法. 1. 同步意 ...
- 服务器与网页之间异步,在服务器端判断request来自Ajax请求(异步)还是传统请求(同步)...
在一次做非常复杂的ajax应用时,如果一个会话已经超时,但是此时再通过ajax请求,那么ajax返回的则是一个登陆页面的html,那这下就惨了,页面上而已就乱了,那么,能否在Java端,如拦截器里判断 ...
- XMLHttpRequest同步和异步请求
XMLHttpRequest 支持同步和异步通信.但是,一般来说,出于性能原因,异步请求应优先于同步请求. 同步请求阻止代码的执行,这会导致屏幕上出现"冻结"和无响应的用户体验. ...
- 【AJAX】请求原理 同步和异步
一..AJAX概念 本质:使用JS提供的异步对象,在页面不刷新的情况下,发送http请求,得到http响应,实现页面的局部刷新,涉及到的技术HTML JS HTTP/HTTPS 接口 XML JSON ...
最新文章
- 外部的Navicat连接docker中的mysql
- jvm性能调优实战 -57数据日志分析系统的OOM问题排查
- python3学哪个版本好玩_python2和python3到底应该学哪个好?
- 10_InfluxDB常用函数(三)变换类函数(DERIVATIVE, DIFFERENCE,ELAPSED,MOVING_AVERAGE,NON_NEGATIVE_DERIVATIVE)等
- PHP两个字符串比较(人为出错),两字符串类型和数据表面相等,但strcmp()结果不为0...
- 交换两个局部变量Integer的值
- 2345电脑管家_2345软件管家下载|2345软件管家 2.0 官方正式版
- python数据可视化工具 pandas_Pandas数据可视化工具——Seaborn用法整理(下)
- Postman从入门到入门
- pdf增强锐化软件_安卓软件—CamScanner 扫描全能王
- VC 播放WAV文件
- 谈谈你对TCP三次握手和四次挥手的理解
- 概要设计说明书模板_实验报告的书写案例word模板
- altium designer(AD13)隐藏敷铜的方法
- K-均值聚类算法和二分K-均值算法
- 如何获取淘宝/天猫商品历史价格信息的API接口
- php 微信支付 ca证书,微信企业付款 CA证书出错,请登录微信支付商户平台下载证书...
- 前端工程师 后段工程师_如何像工程师一样思考
- 100行代码撸一个语音对话助手
- 理财就是理生活 —— 小白理财训练营(上)
热门文章
- python array函数_Python numpy.array函数方法的使用
- JZOJ 5623. 【NOI2018模拟4.2】program
- Linux中字符设备注册方式,3.4. 字符设备注册
- python中list的反转_Python实现list反转实例汇总
- java 对象创建过程_5种创建Java对象的方式
- 2022.2.22显示器连接器引脚信号定义2
- Codeforces 1254C/1255F Point Ordering (交互题)
- 2020-10-13 四元数用法(不讲原理,只讲计算规则)
- Excel中文字换行
- yarn add yarn global add