一 GET同步请求
步骤:
1、设置URL地址
2、设置interface接口
3、添加?连接符
4、设置属性keyArr
5、设置值valueArr
6、前五个拼接起来
7、request
8、sendSyn同步 NSData接收
9、解析NSData(用什么接? 字典dic or 数组arr)
10、其他事情(一般是布局进行显示)
二 GET异步
步骤:
1、遵守协议(NSURLConnectionDataDelegate.h)
2、声明mutableData
3、对其初始化
4、设置URL地址
5、添加interface
6、添加?
7、设置属性keyArr
8、设置值valueArr
9、5个数据拼接起来
10、request
11、connection
12、start
13、实现四个代理方法
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
}
具体代码如下
1 .GET同步:
{
NSString *URL = @"http://192.168.88.8/sns";
NSString *interface = @"/my/album_list.php";
NSString *token = @"b3f7bZ9/MisF"
NSArray *keyArr = @[@"uid",@"m_auth",];
NSArray *valueArr = @[@"54837",token ];
NSMutableString *reqStr = [NSMutableString stringWithCapacity:0];
[reqStr appendString:url];
[reqStr appendString:interface];
[reqStr appendString:@"?"];
//GET方式,信息会被看到
for (int i = 0; i < keyArr.count; i++)
{
[reqStr appendFormat:@"%@=%@",keyArr[i],valueArr[i]];
if (i == keyArr.count-1)
{
break;//最后一个就退出,不再添加&
}
[reqStr appendString:@"&"];
}
//以上创建好了URL+interface+key+value的请求
//下面开始创建请求体
NSMutableURLRequest *request =
[NSMutableURLRequest requestWithURL:
[NSURL URLWithString:reqStr] cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:timeOut];
NSError *error = nil;
NSData *reqData = [NSURLConnection sendSynchronousRequest:
request returningResponse:nil error:&error];
if (error)
{
return ;//出错处理
}
//解析数据,得到字典
NSDictionary *dic2 = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
}
2 .GET异步
{
NSString *URL = @"http://192.168.88.8/sns/my";
NSString *interface = @"/login.php";
NSMutableString *strUrl = [NSMutableString stringWithCapacity:0];
[strUrl appendString:URL];
[strUrl appendString:interface];
NSArray *keyArr = @[@"username",@"password"];
NSArray *valueArr = @[@"zaq",@"1111"];
for (int i = 0; i < keyArr.count; i++)
{
[strUrl appendFormat:@"%@=%@",keyArr[i],valueArr[i]];
if (i == keyArr.count-1)
{
break;
}
[strUrl appendString:@"&"];
}
NSMutableURLRequest *requst = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:strUrl] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:10];
NSURLConnection * conn = [NSURLConnection connectionWithRequest:requst delegate:self];
[conn start];//开始接收
}
//代理方法
//接收出错
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"%@",error);
}
//将收到的信息添加到profileData里面
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[self.profileData appendData:data];
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
}
//接收结束
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSDictionary *proDic = [NSJSONSerialization JSONObjectWithData:self.profileData options:NSJSONReadingMutableLeaves error:&error];
}
}