码迷,mamicode.com
首页 > 其他好文 > 详细

MJ - 0919 - 网络编程2

时间:2014-10-02 17:04:53      阅读:307      评论:0      收藏:0      [点我收藏+]

标签:http   io   os   使用   ar   for   strong   文件   数据   

JSON


格式:{“key”:"value", "key":["value1", "value2", "value3"], "key":{"key":"value", "key":value}}

key必须是字符串

解析方案

第三方框架:JSONKit、SBJson、TouchJSON(性能差)

 

发送request请求,返回json格式的NSData,解析json获得返回结果

bubuko.com,布布扣

 

问题:同步请求无响应会阻塞主线程

解决:使用异步请求,把请求放到子线程执行

bubuko.com,布布扣

 

问题:队列结束后没有更新UI

解决:更新UI的操作必须放在主线程

bubuko.com,布布扣

 

 

视频播放器  - 黑酷


1. 创建tableviewcontroller

2. 创建视频信息的模型VideoModel

3. 创建队列获取网络数据到videos数组属性中

bubuko.com,布布扣

4. 使用SDWebImage框架下载缩略图

bubuko.com,布布扣

 

5. 处理cell的点击事件

使用系统自带的视频控制器(需要导入头文件<MediaPlay/Mediaplay>)

bubuko.com,布布扣

 

XML


解析方案:

苹果原生:

第三方框架

libxml2,大文件

bubuko.com,布布扣

 

》XML解析方式

1. DOM:一次性加载整个xml文件,适用于小文件

2. SAX:单个元素逐步解析,适用于大文件

 

xml解析实例

 

导入GDataXML头文件

step1

bubuko.com,布布扣

step2

bubuko.com,布布扣

step3

bubuko.com,布布扣

 

step4 单独设置非ARC文件

bubuko.com,布布扣

 

》加载整个xml文件

bubuko.com,布布扣

》获取根元素rootElement

bubuko.com,布布扣

》获取指定元素名称的数组

bubuko.com,布布扣

》遍历元素数组,获取元素各项属性,并放到模型数组中存储

bubuko.com,布布扣

》刷新表格

bubuko.com,布布扣

 

 

SAX方式解析XML实例


1 创建xml解析器

2 实现代理,设置当前控制器作为代理

bubuko.com,布布扣

3 实现代理方法

3-1 

 

 

 

》JSON和XML对比:json体积小,解析方便,建议使用

    

HTTP请求方式(get查\post改\option\head\put增\delete删\trace\connect\patch)

1. get(默认)

》将请求参数拼接在请求地址后面

》url最大1KB

 

2. post(信息安全)

》url理论上无限制

 

设置请求方式,注意使用NSMutableURLRquest

request.HTTPMethod = @"POST";

设置请求体

bubuko.com,布布扣

 

请求信息

》请求头:包含客户端的环境藐视、客户端请求的主机地址

host、user-agent、accept

POST /MJServer/login HTTP/1.1

Host: 192.168.15.26:8080

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Referer: http://192.168.15.26:8080/MJServer/

Cookie: 4qID_2132_saltkey=EPStvBst; 4qID_2132_lastvisit=1411105651; 4qID_2132_sid=NKlxVD; 4qID_2132_lastact=1411109258%09forum.php%09

Connection: keep-alive

bubuko.com,布布扣

》请求行:

》请求体

 

响应信息

》状态行:成功或失败信息200(OK)、400(Bad Request)、404(Not found)、500(Server Error)等

》响应头:服务器信息

》实体内容:具体数据

 

补充


》请求超时设置(默认是60秒)

request.timeoutInterval = 30;

 

》url中不能有中文,需要转码

bubuko.com,布布扣

 

 

》发送复杂参数

1. json

    》使用post

    》设置请求体

bubuko.com,布布扣

    》设置请求头

bubuko.com,布布扣

   

2. 多值参数

使用同一个参数名,多次设置参数值

http://192.168.15.26:8080/MJServer/weather?place=guilin&place=shunde&place=pudong&place=yongzhou&type=XML

 

MJ - 0919 - 网络编程2

标签:http   io   os   使用   ar   for   strong   文件   数据   

原文地址:http://www.cnblogs.com/jqtech/p/4004074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!