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];

  • 相关阅读:
    解决大量TCPIP连接后出现“因为系统缺乏足够缓冲区空间或者因为队列已满无法执行套接字上操作”的问题
    网站/网页 变灰的方法
    [收藏]General things to take into consideration while doing socket programming.
    数据库主体在该数据库中拥有 架构,无法删除解决方法
    Word字体与像素的对应关系
    50个网站设计开发必备的资源素材网站
    apache实现页面重定向(地址跳转)
    JS eval(function(p,a,c,k,e,r){e=function(c)*****解密
    JS打印指定区域内容
    如何才能做到网站高并发访问? .
  • 原文地址:https://www.cnblogs.com/bluceZ/p/3942755.html
Copyright © 2011-2022 走看看