[ios]IOS之同步请求、异步请求、GET请求、POST请求

1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作,

2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行

3、GET请求,将参数直接写在访问路径上。操作简单,不过容易被外界看到,安全性不高,地址最多255字节;

4、POST请求,将参数放到body里面。POST请求操作相对复杂,需要将参数和地址分开,不过安全性高,参数放在body里面,不易被捕获。

 

 

0011、     同步GET请求
002 
003     //第一步,创建URL
004 
005     NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
006 
007      
008 
009     //第二步,通过URL创建网络请求
010 
011     NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
012 
013     //NSURLRequest初始化方法第一个参数:请求访问路径,第二个参数:缓存协议,第三个参数:网络请求超时时间(秒)
014 
015       其中缓存协议是个枚举类型包含:
016 
017       NSURLRequestUseProtocolCachePolicy(基础策略)
018 
019       NSURLRequestReloadIgnoringLocalCacheData(忽略本地缓存)
020 
021       NSURLRequestReturnCacheDataElseLoad(首先使用缓存,如果没有本地缓存,才从原地址下载)
022 
023       NSURLRequestReturnCacheDataDontLoad(使用本地缓存,从不下载,如果本地没有缓存,则请求失败,此策略多用于离线操作)
024 
025       NSURLRequestReloadIgnoringLocalAndRemoteCacheData(无视任何缓存策略,无论是本地的还是远程的,总是从原地址重新下载)
026 
027       NSURLRequestReloadRevalidatingCacheData(如果本地缓存是有效的则不下载,其他任何情况都从原地址重新下载)
028 
029     //第三步,连接服务器
030 
031     NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
032 
033      
034 
035     NSString *str = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];
036 
037      
038 
039     NSLog(@"%@",str);
040 
0412、同步POST请求
042 
043     //第一步,创建URL
044 
045     NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];
046 
047     //第二步,创建请求
048 
049     NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
050 
051     [request setHTTPMethod:@"POST"];//设置请求方式为POST,默认为GET
052 
053     NSString *str = @"type=focus-c";//设置参数
054 
055     NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
056 
057     [request setHTTPBody:data];
058 
059     //第三步,连接服务器
060 
061      
062 
063     NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
064 
065      
066 
067     NSString *str1 = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];
068 
069      
070 
071     NSLog(@"%@",str1);
0723、异步GET请求
073 
074     //第一步,创建url
075 
076     NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
077 
078     //第二步,创建请求
079 
080     NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
081 
082     //第三步,连接服务器
083 
084     NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
0854、异步POST请求
086 
087     //第一步,创建url
088 
089     NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];
090 
091     //第二步,创建请求
092 
093     NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
094 
095     [request setHTTPMethod:@"POST"];
096 
097     NSString *str = @"type=focus-c";
098 
099     NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
100 
101     [request setHTTPBody:data];
102 
103     //第三步,连接服务器
104 
105     NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
106 
1075、异步请求的代理方法
108 
109//接收到服务器回应的时候调用此方法
110 
111 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
112 
113{
114 
115     NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;
116 
117     NSLog(@"%@",[res allHeaderFields]);
118 
119     self.receiveData = [NSMutableData data];
120 
121    
122 
123                                
124 
125}
126 
127//接收到服务器传输数据的时候调用,此方法根据数据大小执行若干次
128 
129 -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
130 
131{
132 
133     [self.receiveData appendData:data];
134 
135}
136 
137//数据传完之后调用此方法
138 
139 -(void)connectionDidFinishLoading:(NSURLConnection *)connection
140 
141{
142 
143     NSString *receiveStr = [[NSString alloc]initWithData:self.receiveData encoding:NSUTF8StringEncoding];
144 
145     NSLog(@"%@",receiveStr);
146 
147}
148 
149//网络请求过程中,出现任何错误(断网,连接超时等)会进入此方法
150 
151 -(void)connection:(NSURLConnection *)connection
152 
153  didFailWithError:(NSError *)error
154 
155{
156 
157     NSLog(@"%@",[error localizedDescription]);
iOS小技能:发送HTTP请求的方案 基础概念一、网络基础:1、为什么要学习网络编程?网络编程是一种实时更新应用数据的常用手段1)通过网络跟外界进行数据交互、数据更新,应用才能保持新鲜、活力 2)移动网络应用 = 良好的UI + 良好的用户体验 + 实时更新的数据2、基本概念 客户端(Client):移动应用(iOS、android等应用) 服务器(Server):为客户端提供服务、提供数据、提供资源的机器 请求(Reques 阅读详情

相关推荐

logstash-filter-grok-4.3.0.tar.gz

logstash-filter-grok-4.3.0.tar.gz

IOS之同步请求、异步请求、GET请求、POST请求

1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行 3、GET请求,将参数直接写在访问路径上。操作简单,不过容易被外界看到,安全性不高,地址最多255字节; 4、POST请求,将参数放到body里

幻年,时光。 1万+

稳定性性能系列之五——Native Crash深度分析:工具实战

深入理解Native Crash的机制与分析方法,掌握addr2line、ndk-stack、gdb等核心工具的实战使用,学会从Tombstone文件中快速定位问题根因

Cheson的专栏 1542

iOS 网络请求接收数据流程 (NSURLRequest&NSURLConnection)

网络编程中一般都是经过  请求---》连接---》响应   (request  --》  connection  --》  response)这个过程。 一般的步骤是这样的: 1、先创建一个NSURL。 2、通过这个指定的URL创建NSURLRequest,这里还可以指定缓存策略和超时时间。 3、根据你的request创建NSURLConnection,并对你的connection进行响应

小邓笔记 6133

无人机开发平台全解析:从开源飞控到企业级应用实战指南

无人机开发平台是无人机从飞行器演变为智能空中机器人的核心,其本质是提供了一套标准化的软硬件接口与工具链,使开发者能够基于稳定可靠的底层系统,专注于上层应用创新。从技术原理上看,一个完整的开发平台通常包含飞行控制器、机载计算机、传感器套件等硬件层,以及飞控固件、机器人操作系统(ROS/ROS 2)、软件开发套件(SDK)等软件层,通过分层架构实现飞行控制、感知决策与任务执行的解耦。其技术价值在于大幅降低了无人机行业应用的开发门槛,使开发者无需从零构建飞行控制系统,即可快速实现自动巡检、精准农业、物流配送等复杂

weixin_28712491的博客 412

UE5 Paper2D性能优化:GroupedSpriteSceneProxy合批渲染原理与实践

在游戏开发中,渲染性能优化是核心技术挑战之一,其核心原理在于减少CPU与GPU之间的通信开销,特别是降低Draw Call数量。Draw Call是CPU向GPU提交绘制命令的指令,每次调用都涉及状态切换和数据传输,当场景中存在大量同质化对象时,频繁的Draw Call会成为主要性能瓶颈。为此,现代图形引擎普遍采用合批渲染技术,其技术价值在于将多个共享相同渲染状态(如材质、几何体)的物体数据合并提交,从而将多次Draw Call压缩为一次或少数几次,显著提升渲染效率。这一技术在2D游戏开发中尤为重要,例如在

weixin_34198453的博客 394

爬爬爬之路:UI(十四) 网络请求

上篇文章已经提到怎样解析数据, 也提到了怎样读取本地文件. 本文讲解的怎样从网络获取APP的真实数据.p.s 本文以Xcode6为环境, Xcode7在网络请求相关的类和方法中做了许多改动, 以下方法会在Xcode7中报黄. 有兴趣的同学可以自行查看Xcode7的网络请求写法. 以下以讲解步骤原理为主.代码展示在说明原理之前, 先贴上GET方法的同步请求代码, 和GET方法的两种异步请求代码 G

慢慢向上爬的蜗牛的博客 933

IC 时钟设计核心问题与高质量系统设计指南(附源码)

本文深入探讨了IC时钟设计的核心问题与高质量系统设计方法。时钟系统作为IC的"心脏",其性能直接影响时序稳定性、功耗效率和可靠性。文章从五个维度展开分析:时钟源选择与性能匹配、时钟分配网络设计、抖动抑制、多时钟域管理和功耗优化。针对高质量时钟系统设计,提出了时钟源优化、时钟树结构优化、干扰抑制与仿真验证等具体方法。同时,系统阐述了时钟与复位的协同设计关系,强调异步复位同步释放等技术的重要性。文章还总结了高质量IC系统设计的综合要点,包括电源/信号完整性、时序功耗平衡、可靠性设计及全流程验

Open 1060

【get/post、同步/异步、阻塞/非阻塞】

提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

Your_Boy_Tt的博客 2043

SDFCOM_SWC警告深度剖析:从assign短路到时序标注失效的链路追踪

本文深入剖析了SDFCOM_SWC警告的根源,从assign短路到时序标注失效的全链路追踪。通过分析RTL设计中的assign语句陷阱、综合阶段的优化变形以及PrimeTime生成SDF文件的视角,提出了重构RTL设计、警告抑制和SDF生成优化等解决方案,帮助工程师有效避免时序标注问题。

weixin_42519985的博客 363

修复Oracle MySQL Server 安全漏洞(CVE-2023-0464)

修复Oracle MySQL Server 安全漏洞(CVE-2023-0464)

路~可以走过 3683

iOS上的http请求:get、post以及同步、异步

1、get: view sourceprint? 01.<span style="font-size:14px;">NSString * URLString = @"http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx/getSupportCityDataset?theRegionCod

青春的岁月流逝 1207

【AUTOSAR-CanNM】-3.1-如何让ECU发出的首帧是NM帧(Tx Nm报文先于Tx App应用报文发出)

如何让ECU发出的首帧是NM帧(Tx Nm报文先于Tx App应用报文发出)

「汽车电子助手」的博客 4723

IOS中get同步异步请求与post同步异步请求

纯代码IOS中get同步异步请求与post同步异步请求

sammyieveo的专栏 856

VLA数据采集以及训练

直到15s计时结束,弹出下面的内容,这个时候不会录制视频了,这里就是需要复位物体到初始位置,尽量保证物体的初始位置放在一样的位置,计时3s,同样根据自己的复位时间来修改(--dataset.reset_time_s=3),这里和前面录制数据的区别就是fps后面多了一个nment,可以作为一个标记,知道什么时候开始去复位而不会拍到自己的手臂。复制网址,在浏览器打开,会出现下面的窗口,依次检查每一轮是否存在问题,例如是否出现录制不完整,是否存在除了机械臂以外的其他移动物体,这些都可能会影响最终训练的效果。

weixin_45303602的博客 496

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ios android 同步请求,iOS上的http请求:get、post以及同步、异步

1、get:02.NSURL* URL = [NSURL URLWithString:[URLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];03.04.NSURLRequest* request = [[NSURLRequest alloc]initWithURL:URL];05.NSURLRespo...

weixin_30650955的博客 417

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

可以运行测试的IOS同步请求、异步请求、GET请求、POST请求

1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行 3、GET请求,将参数直接写在访问路径上。操作简单,不过容易被外界看到,安全性不高,地址最多255字节; 4、POST请求,将参数放到body里

Flying_in_the_world的专栏 462

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【笔记】IOS之同步请求、异步请求、GET请求、POST请求

1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行 3、GET请求,将参数直接写在访问路径上。操作简单,不过容易被外界看到,安全性不高,地址最多255字节; 4、POST请求,将参数放到body里面...

125

IOS之同步请求、异步请求、GET请求、POST请求-日记

1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行 3、GET请求,将参数直接写在访问路径上。操作简单,不过容易被外界看到,安全性不高,地址最多255字节; 4、POST请求,将参数放到body里面。POST

niuemperor的专栏 560

iOS-网络-同步请求、异步请求、GET请求、POST请求

一、网络请求类型: 按照是否为同步分为两类:同步和异步;按照请求体样式又分为get和post两种。每类请求特点: 1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行 3、GET请求,将参数直接写在访问路径上。

xhxnudt的博客 372

IOS GET POST 同步 异步请求

iOS SDK为HTTP请求提供了同步和异步请求这两种不同的API,而且可以使用GET或POST等请求方法。下边主要编写了常用到的GET和POST方法。同步请求的用户体验不是很好,因此很多情况下我们会采用异步调用。而异步请求会使用NSURLConnection委托协议NSURLConnectionDataDelegate。在请求的不同阶段,会回调委托对象的不同方法。iOS 9.0已弃用[NSURL...

飞跃 Ni Wo Ta 1125
上一篇: [ios]iOS 中正则表达式的使用
下一篇: [ios]ARC(Automatic Reference Counting )技术概述
iPoolo
博客等级 码龄17年 2粉丝 168原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值