iOS开发之网络编程

一网络编程基础介绍

  • ios9: 重大改变
    (1)
    NSURLConnection:ios9之前使用,之后弃用
    NSURLSession ios7.0之后出来 ios9只能使用这个类
    (2)后台服务器传输协议由HTTP改成HTTPS(都是超文本传输协议)
    HTTP:Hypertext Transfer Protocol
    https:Hyper Text Transfer Protocol over Secure Socket
    Layer
  • 区别: https比http多了 安全套接字层 更安全都是超文本传输协议
    (3)常用的请求方法
    ① get 数据写在URL后面
    浏览器和服务器对URl长度有限制,因此在URL后面附带的参数是有限制的
    ② post
    默认是get
    (4) 一个URL加载的请求 NSURLRequest
    NSURLRequest子类为NSMutableURLRequest 可以添加请求体 请求头 请求体就是body数据 请求头是格式
    (5)注意在info.plist中添加 否则无法请求数据
    info.plist -> App Transport Security Settings -> Allow Arbitrary Loads -> YES
1678BFA1-CD74-499E-82C6-875F97F5EB60.png

二、网络环境判断

  • 1、Reachability方法(可以在这下载demo研究)
  • 步骤:
    (1)导入Reachability类名
    (2)初始化Reachability对象,HostName 尽量用一个比较稳定的网战
    (3)添加观察者,接收网络环境发生改变的通知
    (4)开始监测
    (5)在通知中得到Reachability的对象 获得网络状态
    注意下载Reachability这个demo地址ReachabilityDemo
    下载之后导入类:
iOS开发之网络编程_第1张图片
3139878F-2945-4149-AE62-3A27A13B45E3.png

不再给出代码示例,可以查看demo

  • 2、AFNetWorking网络环境判断(可以在这下载demo分析)
  • 步骤:
    AFNetworkReachabilityManager
    (1)导入类库
    (2)创建监测对象 使用类方法sharedManager 重点
    (3)开始监测
    (4)通过监测对象获得监测的结果 回调方法(setReachabilityStatusChangeBlock:)
  • 前期工作:在这下载AFNetWorking框架
  • 导入框架:
iOS开发之网络编程_第2张图片
2ABFE158-57B0-4A78-83BB-73CBFF3B115B.png
  • 代码示例:
    //
    // ViewController.m
    // AFNetWorking
    //
    // Created by 王龙 on 16/3/27.
    // Copyright © 2016年 Larry(Lawrence). All rights reserved.
    //

      #import "ViewController.h"
      //1.导入框架
      #import "AFNetworking.h"
    
      @interface ViewController ()
    
      @end
    
      @implementation ViewController
    
      - (void)viewDidLoad {
          [super viewDidLoad];
          self.edgesForExtendedLayout = UIRectEdgeNone;
          self.view.backgroundColor = [UIColor greenColor];
    
          //    2.初始化对象
          //    注意用shareManger来初始化对象
          AFNetworkReachabilityManager *reachabilityManger = [AFNetworkReachabilityManager sharedManager];
    
          //    3.开始监测
          [reachabilityManger startMonitoring];
    
          //    4.获得网络状态
          [reachabilityManger setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
              NSString *statue;
              switch (status) {
          case AFNetworkReachabilityStatusUnknown:{
              statue = @"未知的网络";
              break;
          }
          case AFNetworkReachabilityStatusNotReachable:{
              statue = @"无网络";
              break;
          }
              
          case AFNetworkReachabilityStatusReachableViaWWAN:{
              statue = @"蜂窝网络";
              break;
          }
              
          case AFNetworkReachabilityStatusReachableViaWiFi:{
              statue = @"WIFI的网络";
              break;
          }
              
          default:
              break;
      }
      //        输出网络环境判断的结果
      NSLog(@"%@",statue);
          }];
    
      }
      @end
    

你可能感兴趣的:(iOS开发之网络编程)