iOS:网络编程的介绍

1、网络编程:HTTP协议、XML数据协议、JSON数据协议:

传输数据有四种方式:Get方式、Post方式、同步请求方式、异步请求方式。

说明:同步和异步请求方式在创建链接对象和创建请求对象时,用Get方式或Post方式中的任意一种即可;那么,同步/异步请求方式和Get/Post方式不同的地方是什么呢?区别在于进行连接处理这一步上,Get/Post方式它们均使用相同代理NSURLConnectionDataDelegate的方法传输数据,而同步/异步请求方式则不需要使用代理。

2、实现步骤:

•第一步:确定地址——URL   •NSURL(地址)

•第二步:建立请求    •NSURLRequest(请求,GET请求使用)/•NSMutableURLRequest(可变请求,POST请求使用)

•第三步:开始连接    •NSURLConnection(连接)

等待网络处理中……

•第四步:连接完成,处理结果

3、<NSURLConnectionDataDelegate>方法,Get和Post方式发送数据时,连接过程中使用代理,之所以使用代理,是因为要处理请求返回的结果!

// 服务器开始返回数据

-(void)connection:didReceiveResponse:

// 收到服务器返回的数据,本方法会被调用多次

- (void)connection:didReceiveData:

// 数据接收完毕,做数据的最后处理

-(void)connectionDidFinishLoading:

// 网络连接错误

- (void)connection:didFailWithError:

// 发送数据给服务器,POST 请求使用此方法

- (void)connection:didSendBodyData:totalBytesWritten: totalBytesExpectedToWrite:

unsigned long enconding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)

4、GET请求步骤——1. 地址 2.请求 3.连接 4.启动

(1)定义URL:

•NSString *urlStr = @"http://127.0.0.1/login.php?username=admin&password=123";

•NSURL *url = [NSURL URLWithString:[urlStr

stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

(2)定义Reauest:

•NSURLRequest *request = [NSURLRequest requestWithURL:url];

(3)定义Connection:

•NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];

(4)启动Connection:

•[conn start];

5、POST请求步骤——1. 地址 2.请求 3.连接 4.启动

(1)定义URL

•NSString *urlStr = @"http://xxx.com/login.php”;

(2)定义Request:

•NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

•// 等待服务器响应的最长时间

•[request setTimeoutInterval:5.0];

•// 设置请求方法,大小写无关

•[request setHTTPMethod:@"post"];

•NSString *bodyString = [NSString stringWithFormat:@"username=%@&password=%@",_userNameText.text,_passwordText.text];

•// 生成请求体数据并编码

•NSData *body = [bodyString dataUsingEncoding:NSUTF8StringEncoding];

•// 设置HTTP请求数据体

•[request setHTTPBody:body];

(3)定义Connection:

•NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];

(4)启动Connection:

•[conn start];

6、同步请求和异步请求(前两步和Get或Post相同): 1. 地址 2.请求 3.使用同步/异步请求

•NSURLConnection提供了两个静态方法可以直接同步或异步调用NSURLRequest,而无需通过NSURLConnectionDataDelegate获取数据

•同步请求:

sendSynchronousRequest:request returningResponse:&response error:&error

•异步请求:

sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)

•服务器传输回来的数据,解析它要用的编码类型:

unsigned long encoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);

时间: 2024-10-28 19:47:39

iOS:网络编程的介绍的相关文章

iOS网络编程(三) 异步加载及缓存图片----&gt;SDWebImage

@SDWebImage提供一个UIImageView的类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. @SDWebImage的导入1.https://github.com/rs/SDWebImage 下载SDWebImage开源包2.将类包拖入工程,再导入MapKit.framework.ImageIO.framework两个框架3.SDWebImage是支持ARC的,在MRC的工程中要注意,可参考MRC工程配置ARC4.注意:SDWebImag

iOS网络编程开发—JSON和XML数据解析

iOS网络编程开发—JSON解析 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典和数组 {"name" : "jack", "age" : 10} {"names" : ["jack", "rose", "jim"]} 标准JSON格式的

iOS网络编程(7) 第三方开源库-----&gt;AFNetworking

AFNetworking是一个为 iOS 和 Mac OSX 制作的令人愉快的网络库,它建立在URL 装载系统框架的顶层,内置在Cocoa里,扩展了强有力的高级网络抽象.它的模块架构被良好的设计,拥有丰富的功能,因此,使用起来,必定赏心悦目. @原文链接https://github.com/AFNetworking/AFNetworking,我在此基础上了点配置修改 @介绍 1.支持HTTP请求和基于REST的网络服务(包括GET.POST. PUT.DELETE等) 2.支持ARC 3.要求i

iOS网络编程开发—HTTP协议

iOS网络编程开发—HTTP协议 说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) 通过1个URL,能找到互联网上唯一的1个资源 URL就是资源的地址.位置,互联网上的每个资源都有一个唯一的URL 2.URL中常见的协议 (1)HTTP 超文本传输协议,访问的是远程的网络资源,格式是http:// http协议是在网络开发中最常用的协议 (2)file 访问的是本地计算机上的资源

iOS网络编程笔记——Socket编程

一.什么是Socket通信: Socket是网络上的两个程序,通过一个双向的通信连接,实现数据的交换.这个双向连路的一端称为socket.socket通常用来实现客户方和服务方的连接.socket是TCP/IP协议的一个十分流行的编程接口.一个socket由一个IP地址和一个端口号唯一确定.TCP/IP协议的传输层又有两种协议:TCP(传输控制协议)和UDP(用户数据报协议).TCP是基于连接的,而UDP是无连接的:TCP对系统资源的要求较多,而UDP少:TCP保证数据的正确性而UDP可能丢包:

iOS网络编程(六) NSURLSession详解

昨夜浏览Demo的时候,看到别人请求网络数据用的是NSURLSession,当时就在想这里什么,怎么没有用过,引起了我的好奇心,遂去百度-谷歌-官方文档一一查看,有了一定的了解,原来NSURLSession是iOS7中新的网络接口,它与咱们熟悉的NSURLConnection是并列的. 查找资料,写了一个小Demo,大家可以看看,有什么不足的地方,可以留言帮我指出来. // // HMTRootViewController.m // // // Created by HMT on 14-6-7.

iOS网络编程开发GET请求和POST请求

iOS网络编程开发GET请求和POST请求 一.GET请求和POST请求简单说明 创建GET请求 // 1.设置请求路径 NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text]; NSURL *url=[NSURL URLWithString:urlStr]

IOS网络编程:HTTP

IOS网络编程:HTTP HTTP定义了一种在服务器和客户端之间传递数据的途径. URL定义了一种唯一标示资源在网络中位置的途径. REQUESTS 和 RESPONSES: 客户端先建立一个TCP连接,然后发送一个请求.服务器受到请求处理后发送一个响应向客户端传递数据.然后客户端可以继续发送请求或者关闭这个TCP连接. HTTPS:在TCP连接建立后,发送请求之前,需要建立一个一个SSL会话. request方法和它们的用途 iOS的NSURLRequest和它的子类NSMutableURLR

iOS网络编程--NSConnection的同步连接与异步连接

1 // 2 // ZFViewController.m 3 // 0628-表单验证 4 // 5 // Created by zfan on 14-6-28. 6 // Copyright (c) 2014年 zfan. All rights reserved. 7 // 8 9 #import "ZFViewController.h" 10 #import "MBProgressHUD+MJ.h" 11 12 @interface ZFViewControll

IOS网络编程——第三方类库

IOS网络编程——第三方类库 目录 概述 ASIHttpRequest AFNetworking 其他 概述 ASIHttpRequest AFNetworking 其他