iOS 中GET请求

来源:互联网 发布:淘宝买岛国片搜什么 编辑:程序博客网 时间:2024/06/06 14:25

上一篇文章阐述了iOS中的请求方法。本文就来实现其中的GET方式。GET请求又有同步和异步之分。

1.GET同步请求

步骤:

1、设置URL地址 2、设置interface接口 
3、添加?连接符 4、设置属性keyArr 5、设置值valueArr6、前五个拼接起来 7、request 8、sendSyn同步 NSData接收9、解析NSData(用什么接? 字典dic or 数组arr) 10、其他事情(一般是布局进行显示)

2. 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];    }}


0 0
原创粉丝点击