zoukankan      html  css  js  c++  java
  • 网络-URLConnection & URLSession

    1、URLConnection
       // 1. url

        // 1> 判断text是否以http开头

        NSString *urlString = text;

        if (![text hasPrefix:@"http://"]) {

            // 2> 拼接URL字符串

         urlString = [NSString stringWithFormat:@"http://m.baidu.com/s?word=%@", text];

        }

        // 对于特殊字符,例如空格或者中文都需要%转义

        // 在iOS中,如果没有特殊要求,需要使用的编码格式是UTF8

        urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

        NSURL *url = [NSURL URLWithString:urlString];

      // 2. 请求

        NSURLRequest *request = [NSURLRequest requestWithURL:url];

     // 3. 用web加载请求

        // 1> 第一步是把请求发送给服务器

        // 2> 显示服务器返回的内容

        [self.webView loadRequest:request];

     
    2、URLSession
    NSURLSession是iOS7中新的网络接口,与NSURLConnection是并列的。

    当程序在前台时,NSURLSession与NSURLConnection大部分可以互相替代

    NSURLSession支持后台网络操作,除非用户强行关闭

    NSURLSession提供的功能:

    通过URL将数据下载到内存

    通过URL将数据下载到文件系统

    将数据上传到指定URL

    在后台完成上述功能

    对于小型数据,例如用户登录、下载小图像、JSON & XML仍然使用NSURLConnection的异步或同步方法即可

       // 1. url

        NSURL *url = [NSURL URLWithString:@"http://m.baidu.com"];

        // 2. request

        NSURLRequest *request = [NSURLRequest requestWithURL:url];

        // 3. session会话

        // sharedSession是一个全局网络会话的单例,便于程序员处理简单的网络请求

        NSURLSession *session = [NSURLSession sharedSession];

        // 4. 任务,所有的网络任务都是由会话来创建的

        NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

            NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

            NSLog(@"%@", html);

        }];

        // 5. 任务默认都是挂起的

        [task resume];

  • 相关阅读:
    例5-6
    例5-5
    例5-4
    例4-5
    例4-4
    例4-3
    例4-2
    例3-11
    例3-10
    例3-9
  • 原文地址:https://www.cnblogs.com/bluceZ/p/3942755.html
Copyright © 2011-2022 走看看