[Swift通天遁地]四、网络和线程-(7)检测服务器接口的访问状态:验证请求结果和可访问性
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10222573.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
本文将演示如何使用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 }