ios开发之网络基础
1、网络访问的步骤
1> 建立NSURL
2> 建立NSURLRequest
3> 建立NSURLConnection
4> 开始连接
- (void)viewDidLoad
{
[super viewDidLoad]; // url
NSURL *url = [NSURL URLWithString:@"www.baidu.com"]; // request
NSURLRequest *request = [NSURLRequest requestWithURL:url]; // connection
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self]; // start
[connection start];
}
……
5> 通过代理NSURLConnectionDataDelegate方法处理网络请求的数据
(1) 服务器响应,表示服务器处理完成请求,准备给客户端发送数据
(2) 客户端接收数据,可能会有多次,因此需要借助成员变量拼接服务器返回的数据
(3) 数据接收完成,处理数据结果,并更新界面显示
(4) 网络访问出错,提示用户
以下代码会在debug区域打印从百度首页抓取的数据
#pragma mark - 网络代理方法
#pragma mark 1.知道服务器查询完毕,准备向客户端(我)发送数据
// response 响应、通知
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
// _serverData 成员变量,用于拼接时保存数据
_serverData = [NSMutableData data];
} #pragma mark 2. 接收数据(可能会重复多次,因为服务器返回的数据量可能会比较大),需要拼接以下服务器返回的数据
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[_serverData appendData:data];
} #pragma mark 3. 处理接收完的数据,负责显示工作
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
// 接收完成的后续处理->字符串
NSString *result = [[NSString alloc] initWithData:_serverData encoding:NSUTF8StringEncoding]; // html
NSLog(@"%@", result); } #pragma mark 4. 网络访问出错
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"网络不给力 - %@", error.localizedDescription);
}
2. 应用模式
在两年前,此开发模式被广为流传
(1) 企业专门为了手机建立一个门户网站,使用HTML5\PHP\ASP.net...
(2) 客户端只需要通过一个WebView即可访问
PhoneGap:能够创建跨平台的移动应用框架,主要实现的核心机制就是HTML5
使用WebView的方式最大的缺陷是用户体验不好,而且无法利用手机本身的很多交互方式,例如手势、加速计等
操作模式过于单薄,目前尚处于研究阶段。
3. 中文处理
在网络请求地址中,如果包含中文,需要将中文转换成带百分号的格式
4. NSData
是在OC中专门用于存储二级制数据的一种数据类型,可以存储任意类型的数据。
在实际开发中,可以根据具体的应用场景,将NSData转换为其他的类型。
ios开发之网络基础的更多相关文章
- iOS开发之网络编程--2、NSURLSessionDownloadTask文件下载
本文内容大纲: 1.回顾NSURLSessionTask 2.NSURLSessionDownloadTask大文件之block下载 3.NSURLSessionDownloadTask大文件之代理方 ...
- iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载+使用输出流代替文件句柄
前言:本篇讲解,在前篇iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载的基础上,使用输出流代替文件句柄实现大文件断点续传. 在实际开发中,输入输出流用的比较少,但 ...
- iOS开发之网络编程--5、NSURLSessionUploadTask+NSURLSessionDataDelegate代理上传
前言:关于NSURLSession的主要内容快到尾声了,这里就讲讲文件上传.关于文件上传当然就要使用NSURLSessionUploadTask,这里直接讲解常用的会和代理NSURLSessionDa ...
- iOS开发之网络编程--4、NSURLSessionDataTask实现文件下载(离线断点续传下载) <进度值显示优化>
前言:根据前篇<iOS开发之网络编程--2.NSURLSessionDownloadTask文件下载>或者<iOS开发之网络编程--3.NSURLSessionDataTask实现文 ...
- iOS开发之网络编程--3、NSURLSessionDataTask实现文件下载(离线断点续传下载)
前言:使用NSURLSessionDownloadTask满足不这个需要离线断点续传的下载需求,所以这里就需要使用NSURLSessionDataTask的代理方法来处理下载大文件,并且实现离线断点续 ...
- iOS开发之网络编程--使用NSURLConnection实现文件上传
前言:使用NSURLConnection实现文件上传有点繁琐. 本文并没有介绍使用第三方框架上传文件. 正文: 这里先提供用于编码测试的接口:http://120.25.226.186:3281 ...
- iOS开发之网络编程--使用NSURLConnection实现大文件下载
主要思路(实现下载数据分段写入缓存中) 1.使用NSURLConnectionDataDelegate以及代理方法.2.在成功获取响应的代理方法中,获得沙盒全路径,并在该路径下创建空文件和文件句柄.3 ...
- iOS开发之网络编程--小文件下载
文件下载方式: 如果下载的文件比较小,下载方式: 直接用NSData的 +(id)dataWithContentsOfURL:(NSURL*)url; 利用NSURLConnection发送一个HTT ...
- IOS开发之网络开发工具
IOS开发之网络开发工具 做移动端开发 常常会涉及到几个模块:1.网络检測 2.网络请求get和post请求 3.文件上传 4.文件下载 5.断点续传 如今将这些一一分享给大家 ,也欢迎 ...
随机推荐
- Oracle数据库对象_同义词
同义词是一种数据库对象,它是为一个数据库对象定义的别名,使用同义词的主要目的是为了简化SQL语句的书写. 同义词的概念和类型 利用同义词可以为用户的一个对象,或者其他用户的一个对象定义别名,从而简化命 ...
- 通信行业OSS支撑系统软件研发思考
一般的,对所谓大型.通信行业.OSS支撑软件系统,我们可宏观定义以下几点: 以年计的研发周期 以几十人计的研发团队 以百计的业务菜单功能点 以千计的数据库表 以万计的业务术语指标 以亿计的数据表记录 ...
- java使用BufferedImage和Graphics实现图片合成
package com.igoxin.weixin.custom; import java.awt.Graphics; import java.awt.image.BufferedImage; imp ...
- GDAL Configure in Visual Studio 2010 for Win7/ GDAL+VisualStudio2010 Win7 配置
配置环境: OS:Win& *86 Ultimate Edition(EN) VS:Visual Studio 2010(EN) Step1: GDAL源码下载:http://www.gisi ...
- 【风马一族_Android】Button 按钮之记录
Button button = new Button(); Button button = (Button)findViewById(R.id.bt_button);//让按钮显示灰色,失效 butt ...
- win8.1环境下硬盘安装centos6.5双系统
作为一名软件工程师或是相关行业的从业人员,经常会用到linux系统,这里为大家介绍的安装linux的方案是在原有win环境下安装linux双系统,两个系统选择分别为win8.1 和centos6.5. ...
- Reveal 配置与使用
http://www.th7.cn/Program/IOS/201608/939231.shtml http://www.jianshu.com/p/abac941c2e8e 这个比较好.http:/ ...
- MemProof教程
简介 MemProof(内存清道夫)是AutomatedQA出品的一款非常不错的检测内存泄漏和资源泄漏的免费调试工具,适合于WIN32平台下使用DELPHI/C++ BUILDER开发的应用程序. 利 ...
- jquery 清空表达内容
function clearForm(objE) { $(objE).find(':input').each( function() { switch (this.type) { case 'pass ...
- 让别人也可以访问你电脑上的ASP.NET MVC创建的网站
最近在写一个网站,昨天刚写完,由于要和朋友一起测试,但是他电脑上没有环境,所以希望我在自己电脑上部署一下,让他直接通过浏览器来访问来测试,所以从昨晚到今天上午,通过各种搜索,终于搞定了. 先介绍一下我 ...