标签:style http color io os ar for 数据 sp
GET请求与POST请求区别
1.GET请求的接口会包含参数部分,参数会作为网址的一部分,服务器地址与参数之间通过?来间隔.POST请求会将服务器地址与参数分开,请求接口中只有服务器地址,而参数会作为请求体的一部分,提交给后台服务器
2.GET请求参数会出现在接口中,不安全,而POST请求相对安全
3.虽然GET请求与POST请求都可以用来请求与提交数据,POST多用于向后台提交数据,GET多用于从后台请求数据
4.同步与异步的区别: 同步连接:主线程去请求数据,当数据请求完毕之前,其它操作一律不响应,会造成假死现象 异步连接:会单独开一个线程去处理网络请求,主线程依然处于交互,程序运行流畅
#define kVideoURL @"http://api.tudou.com/v3/gw”
一. 异步POST请求方式
1.根据网址初始化OC字符串对象
NSString *urlString = [NSString
stringWithFormat:@"%@",kVideoURL];
2.创建NSURL对象
NSURL *url = [NSURL
URLWithString:urlString];
3.创建请求
NSMutableURLRequest *request = [NSMutableURLRequest
requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:10];
4.创建参数字符串对象
NSString *parmStr = [NSString
stringWithFormat:@"method=album.channel.get&appKey=myKey&format=json&channel=t&pageNo=1&pageSize=10"];
5.将字符串转为NSData对象
NSData *parmData = [parmStr
dataUsingEncoding:NSUTF8StringEncoding];
6.设置请求体
[request
setHTTPBody:parmData];
7.设置请求方式(POST)
[request
setHTTPMethod:@"POST”];
8.异步连接(协议代理)
[NSURLConnection
connectionWithRequest:request
delegate:self];
9.服从<NSURLConnectionDataDelegate>协议
10.实现协议中方法
当服务器响应时触发
- (void)connection:(NSURLConnection
*)connection didReceiveResponse:(NSURLResponse *)response {
self.data = [NSMutableData
data];
//当服务器响应时,为data开辟空间,接下来服务器返回数据
}
当接收服务器返回的数据时触发,返回的可能是资源片段
- (void)connection:(NSURLConnection
*)connection didReceiveData:(NSData *)data {
拼接数据
[self.data
appendData:data];
}
当服务器返回所有数据时触发,数据返回完毕
- (void)connectionDidFinishLoading:(NSURLConnection
*)connection {
self.data;//就是服务器返回的所有数据
解析,获得请求数据
NSDictionary *dic = [NSJSONSerialization
JSONObjectWithData:self.data
options:
NSJSONReadingMutableContainers
error:nil];
}
二.异步GET请求方式
1.将网址初始化成OC字符串对象
NSString *urlString = [NSString stringWithFormat:@"http://image.zcool.com.cn/56/13/1308200901454.jpg”];
2.如果网址中存在中文,进行URLEncode(没有则不需要)
NSString *newUrl = [urlString
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
3.构建网络URL对,NSURL
NSURL *url = [NSURL
URLWithString:newUrl];
4.创建网络请求
NSURLRequest *request = [NSURLRequest
requestWithURL:url
cachePolicy:
NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:10];
5.异步连接(协议代理)
[NSURLConnection
connectionWithRequest:request
delegate:self];
6.服从协议,并且实现协议中的方法(和异步POST一样)
三.同步GET请求方式
1.将网址初始化成OC字符串对象
NSString *urlString = [NSString stringWithFormat:@"%@?query=%@®ion=%@&output=json&ak=6E823f587c95f0148c19993539b99295",kBusinessInfoURL,@"银行",@"济南"];
2.如果网址中存在中文,进行URLEncode
NSString *newUrl = [urlString
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
3.构建网络URL对,NSURL
NSURL *url = [NSURL
URLWithString:newUrl];
4.创建网络请求
NSURLRequest *request = [NSURLRequest
requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:10];
5.同步连接
NSURLResponse *response =
nil;
NSError *error =
nil;
NSData *data = [NSURLConnection
sendSynchronousRequest:request
returningResponse:&response
error:&error];
6.解析,获取请求到的数据
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
四.
同步POST请求方式
1.根据网址初始化OC字符串对象
NSString *urlString = [NSString
stringWithFormat:@"%@",kVideoURL];
2.创建NSURL对象
NSURL *url = [NSURL
URLWithString:urlString];
3.创建请求
NSMutableURLRequest *request = [NSMutableURLRequest
requestWithURL:url];
4.创建参数字符串对象
NSString *parmStr = [NSString
stringWithFormat:@"method=album.channel.get&appKey=myKey&format=json&channel=t&pageNo=1&pageSize=10"];
5.将字符串转为NSData对象
NSData *parmData = [parmStr
dataUsingEncoding:NSUTF8StringEncoding];
6.设置请求体
[request setHTTPBody:parmData];
7.设置请求方式(POST)
[request setHTTPMethod:@"POST"];
8.同步连接
NSData *data = [NSURLConnection
sendSynchronousRequest:request
returningResponse:nil
error:nil];
9.解析,获得请求数据
NSDictionary *dic = [NSJSONSerialization
JSONObjectWithData:data
options:NSJSONReadingMutableContainers
error:nil];
标签:style http color io os ar for 数据 sp
原文地址:http://blog.csdn.net/hakusan/article/details/39268001