iOS开发网络篇—NSURLConnection基本使用(二)

简介:

1、常用的类

NSURL:请求地址

NSURLRequest:一个NSURLRequest对象就代表一个请求,它包含的信息有:

一个NSURL对象

请求方法、请求头、请求体

请求超时

…...

NSMutableURLRequest:NSURLRequest的子类

NSURLConnection

负责发送请求,建立客户端和服务器的连接。

发送数据给服务器,并收集来自服务器的响应数据。

2、NSURLConnection发送请求,常见的发送请求(默认都是GET请求)方式(都是类方法哦)有以下几种:

 2-1.第一种GET请求方法:直接通过同步或异步请求(一般都是使用不会堵塞的异步请求)

  • 同步请求

+ (NSData*)sendSynchronousRequest:(NSURLRequest*)request returningResponse:(NSURLResponse**)response error:(NSError**)error;

  • 异步请求

+ (NSData*)sendASynchronousRequest:(NSURLRequest*)request returningResponse:(NSURLResponse**)response error:(NSError**)error;

 2-2.第二种GET请求方法:使用NSURLConnectDataDelegate协议中的代理方法 (默认都是GET请求)

 <代理方法内部其实是异步请求,所以不会堵塞>

  • 开始接收服务器的响应时调用

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

  • 接收到服务器返回的数据时调用(服务器返回的数据比较大时会调用多次)

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

  • 服务器返回的数据完全接收完毕后调用

- (void)connectionDidFinishLoading:(NSURLConnection*)connection;

  • 请求出错时调用(比如请求超时)

- (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error;

总结:

连接(connection)开始接收响应,那么最后面的参数有response(响应)。

连接(connection)接收到数据,那么最后面的参数有data(数据)。

连接(connection)接收完毕(DidFinishLoading),那么最后面没有参数了。

连接(connection)请求错误,那么最后面的参数就是error(错误)。

其中第三种方法需要调用start方法,前两种方法不需要。

3、NSConnection发送POST请求,使用NSMutableURLRequest

NSMutableURLRequest是URLRequest的子类,常用的方法都是设置“set”(只要敲出set就能导出相关方法)相关的方法:

  • 设置请求超时等待时间(超过这个时间就算超时,请求失败)

-(void)setTimeoutInterval:(NSTimeInterval)seconds;

  • 设置请求方法(比如GET和POST)

-(void)setHTTPMethod:(NSString *)method;

  • 设置请求体

-(void)setHTTPBody:(NSData *)data;

  • 设置请求头

-(void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field;

因为NSMutableURLRequest是Mutable的,所以可以重新设置请求方法,可以将之前默认GET方法设置为POST请求。

如果服务器端需要接收客户端信息,那么可能就需要下面的setValue forHTTPHeaderField方法。

额外积累:

interval 英 'ɪntəv(ə)l 美 'ɪntɚvl n. 间隔;间距;幕间休息


相关文章
|
7月前
|
安全 Linux 虚拟化
Cisco IOS XRv 9000 Router IOS XR Release 7.11.2 MD - 思科 IOS XR 网络操作系统
Cisco IOS XRv 9000 Router IOS XR Release 7.11.2 MD - 思科 IOS XR 网络操作系统
450 3
Cisco IOS XRv 9000 Router IOS XR Release 7.11.2 MD - 思科 IOS XR 网络操作系统
|
11月前
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
532 61
|
8月前
Vite使用svg-企业级开发(支持本地svg和网络svg渲染)
本教程介绍如何在Vite项目中集成SVG图标插件。首先安装`vite-plugin-svg-icons`,配置插件指向SVG图标目录,并注册全局组件。接着创建SVG图标组件,支持内部图标与外部图片展示。通过简单配置,即可在页面中灵活使用各类SVG图标,提升开发效率。
439 0
|
11月前
|
开发者
鸿蒙仓颉语言开发教程:网络请求和数据解析
本文介绍了在仓颉开发语言中实现网络请求的方法,以购物应用的分类列表为例,详细讲解了从权限配置、发起请求到数据解析的全过程。通过示例代码,帮助开发者快速掌握如何在网络请求中处理数据并展示到页面上,减少开发中的摸索成本。
鸿蒙仓颉语言开发教程:网络请求和数据解析
|
iOS开发 开发者
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
947 67
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
|
11月前
|
监控 安全 网络协议
恶意软件无处逃!国内版“Manus”AiPy开发Windows沙箱工具,进程行为+网络传输层级监控! 头像 豪气的
NImplant.exe 是一款后渗透测试工具,可实现远程管理与持久化控制。其优点包括无文件技术、加密通信和插件扩展,但也存在被检测风险及配置复杂等问题。为深入分析其行为,我们基于 aipy 开发了 Windows 沙箱工具,针对桌面上的 NImplant.exe 进行多维度分析,涵盖进程行为、网络连接(如 TCP 请求、目标 IP/域名)、文件控制等,并生成传输层监控报告与沙箱截图。结果显示,aipy 工具响应迅速,报告清晰易读,满足分析需求。
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
528 12
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
602 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
人工智能 程序员 API
iOS|记一名 iOS 开发新手的前两次 App 审核经历
啥,这玩意也有新手保护期?
472 0
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。