[Swift通天遁地]四、网络和线程-(7)检测服务器接口的访问状态:
发布时间:2020-12-14 05:07:26 所属栏目:百科 来源:网络整理
导读:本文将演示如何使用Alamofire验证请求结果和可访问性。 首先确保在项目中已经安装了所需的第三方库。 点击【Podfile】,查看安装配置文件。 1 source ‘ https://github.com/CocoaPods/Specs.git ‘ 2 platform :ios, ‘ 12.0 ‘ 3 use_frameworks! 4 5 targe
本文将演示如何使用Alamofire验证请求结果和可访问性。 首先确保在项目中已经安装了所需的第三方库。 点击【Podfile】,查看安装配置文件。 1 source ‘https://github.com/CocoaPods/Specs.git‘ 2 platform :ios,‘12.0‘ 3 use_frameworks! 4 5 target ‘DemoApp’ do 6 pod ‘Alamofire‘,‘~> 4.0‘ 7 end 根据配置文件中的相关配置,安装第三方库。 然后点击打开【DemoApp.xcworkspace】项目文件。 在项目导航区,打开视图控制器的代码文件【ViewController.swift】 现在开始编写代码,实现接口访问状态检测的功能。 1 import UIKit 2 //在当前的类文件中,引入已经安装的第三方类库 3 import Alamofire 4 5 class ViewController: UIViewController { 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // Do any additional setup after loading the view,typically from a nib. 10 //依次测试下文的两个方法 11 12 //检测接口的状态 13 manualValidation() 14 15 //更快捷的方式检测接口的状态 16 automaticValidation() 17 } 18 19 //添加一个方法,用来检测接口的状态 20 func manualValidation() 21 { 22 //调用网络操作库的网络请求方法 23 Alamofire.request("https://httpbin.org/get") 24 //添加验证方法 25 //检测状态的编码是否在200至300之间 26 .validate(statusCode: 200..<300) 27 //检测类型是否为JSON类型 28 .validate(contentType: ["application/json"]) 29 //处理网络返回的数据 30 .responseData { response in 31 //根据网络返回对象的结果,在控制台输出不同的日志。 32 switch response.result { 33 //检测成功 34 case .success: 35 print("---Validation Successful") 36 //检测失败 37 case .failure(let error): 38 //输出详细的错误信息 39 print(error) 40 } 41 } 42 } 43 44 //添加一个方法,使用更快捷的方式检测接口的各个状态 45 func automaticValidation() 46 { 47 //直接检测接口的可连接性。 48 //调用网络操作库的网络请求方法,并处理从服务器返回的JSON数据。 49 Alamofire.request("https://httpbin.org/get").validate().responseJSON { response in 50 //对网络返回的结果进行处理 51 //根据网络返回对象的结果,在控制台输出不同的日志 52 switch response.result { 53 //检测成功 54 case .success: 55 print("---Validation Successful") 56 //检测失败 57 case .failure(let error): 58 //输出详细的错误信息 59 print(error) 60 } 61 } 62 } 63 64 override func didReceiveMemoryWarning() { 65 super.didReceiveMemoryWarning() 66 // Dispose of any resources that can be recreated. 67 } 68 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |