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开发之网络基础的更多相关文章

  1. iOS开发之网络编程--2、NSURLSessionDownloadTask文件下载

    本文内容大纲: 1.回顾NSURLSessionTask 2.NSURLSessionDownloadTask大文件之block下载 3.NSURLSessionDownloadTask大文件之代理方 ...

  2. iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载+使用输出流代替文件句柄

    前言:本篇讲解,在前篇iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载的基础上,使用输出流代替文件句柄实现大文件断点续传.    在实际开发中,输入输出流用的比较少,但 ...

  3. iOS开发之网络编程--5、NSURLSessionUploadTask+NSURLSessionDataDelegate代理上传

    前言:关于NSURLSession的主要内容快到尾声了,这里就讲讲文件上传.关于文件上传当然就要使用NSURLSessionUploadTask,这里直接讲解常用的会和代理NSURLSessionDa ...

  4. iOS开发之网络编程--4、NSURLSessionDataTask实现文件下载(离线断点续传下载) <进度值显示优化>

    前言:根据前篇<iOS开发之网络编程--2.NSURLSessionDownloadTask文件下载>或者<iOS开发之网络编程--3.NSURLSessionDataTask实现文 ...

  5. iOS开发之网络编程--3、NSURLSessionDataTask实现文件下载(离线断点续传下载)

    前言:使用NSURLSessionDownloadTask满足不这个需要离线断点续传的下载需求,所以这里就需要使用NSURLSessionDataTask的代理方法来处理下载大文件,并且实现离线断点续 ...

  6. iOS开发之网络编程--使用NSURLConnection实现文件上传

    前言:使用NSURLConnection实现文件上传有点繁琐.    本文并没有介绍使用第三方框架上传文件. 正文: 这里先提供用于编码测试的接口:http://120.25.226.186:3281 ...

  7. iOS开发之网络编程--使用NSURLConnection实现大文件下载

    主要思路(实现下载数据分段写入缓存中) 1.使用NSURLConnectionDataDelegate以及代理方法.2.在成功获取响应的代理方法中,获得沙盒全路径,并在该路径下创建空文件和文件句柄.3 ...

  8. iOS开发之网络编程--小文件下载

    文件下载方式: 如果下载的文件比较小,下载方式: 直接用NSData的 +(id)dataWithContentsOfURL:(NSURL*)url; 利用NSURLConnection发送一个HTT ...

  9. IOS开发之网络开发工具

    IOS开发之网络开发工具 做移动端开发  常常会涉及到几个模块:1.网络检測   2.网络请求get和post请求  3.文件上传  4.文件下载   5.断点续传 如今将这些一一分享给大家 ,也欢迎 ...

随机推荐

  1. JavaScript语言常量和变量

    我们在以往介绍使用JavaScript编写一个HelloJS的小程序,其中我们就用到变量.常量和变量是构成表达式的重要组成部分.常量在声明和初始化变量时,在标识符的前面加上关键字const,就可以把该 ...

  2. 一个小makefile程序

    刚刚开始学习linux下的程序,总需要自己写一些小型的makefile文件,这里给出一个makefile的例子,方便以后借鉴. 程序包含了main.c(需要头文件input.h 和 display.h ...

  3. linux exec函数族

    1.简介 在Linux中,并不存在exec()函数,exec指的是一组函数,一共有6个,分别是: #include <unistd.h>   extern char **environ; ...

  4. BZOJ 1631==USACO 2007== POJ 3268 Cow Party奶牛派对

    Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 19226   Accepted: 8775 Description One ...

  5. 基于JQuery+JSP的无数据库无刷新多人在线聊天室

    JQuery是一款非常强大的javascript插件,本文就针对Ajax前台和JSP后台来实现一个无刷新的多人在线聊天室,该实现的数据全部存储在服务端内存里,没有用到数据库,本文会提供所有源程序,需要 ...

  6. ◆linux分区的加密与自动解密◆——Super孟再创辉煌

    首先制作分区的加密挂载: 分区的自动解密:

  7. linux发展前景如何?

    2014-01-09 18:54Linux将不会取代Windows成为主流的桌面操作环境, 但它很有可能在信息接入设备中独霸天下. 为什么Linux无法取代Windows呢?最主要的原因是大多数最终用 ...

  8. 百度云demo2

  9. eclipse插件 代码提示和着色

    插件一:Eclipse HTML Editor,用于编辑一些页面文件,例如JSP,HTML,JS等 Eclipse HTML编辑器插件主要提供以下功能:- HTML/JSP/XML/CSS/DTD/J ...

  10. UserLogin

    DAL: IUserDAL namespace Dal { /// <summary> /// This interface is defined for user functions. ...