微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS_网络请求_代理方式

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

#pragma mark - 网络请求代理方式(异步)
- (IBAction)DelegateButtonDidClicked:(UIButton *)sender {

    // 1、拼接 urlString,网址里面必须写 http://
    Nsstring *urlString = @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213";

    // 2、根据字符串创建 URL(统一资源定位符)
    NSURL *url = [NSURL URLWithString:urlString];

    // 3、根据 url 创建 request 请求类的对象
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    // 4、请求数据(代理回调方式)遵守代理 <NSURLConnectionDataDelegate>
    [NSURLConnection connectionWithRequest:request delegate:self];
}

代理方法
客户端收到服务器的响应
#pragma mark | 客户端收到服务器的响应
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    // 只执行一次
    // 初始化 receiveData 对象
    self.receiveData = [NSMutableData data];
}

#pragma mark | 客户端收数据(并非一次性全部拿到)
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    // 每次返回的都是新数据
    // 拼接数据(请求一点 拼接一点)
    [self.receiveData appendData:data];
}

#pragma mark | 客户端接收数据完毕
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    // 解析数据
    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:self.receiveData options:(NSJSONReadingMutableContainers) error:nil];


    NSArray *array = dict[@"news"];

    self.newsArray = [NSMutableArray array];

    for (NSDictionary *smallDict in array) {
        NewsModal *modal = [[NewsModal alloc] init];
        [modal setValuesForKeysWithDictionary:smallDict];
        [self.newsArray addobject:modal];
    }

    for (NewsModal *modal in self.newsArray) {
        NSLog(@"%@",modal.title);
    }
}

网络请求失败
#pragma mark | 网络请求失败
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
    NSLog(@"%@",error);
}

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐