★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-tofjiagx-kv.html
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html
目錄:[Swift]通天遁地Swiftios
本文將演示如何解析網絡請求數據:使用Alamofire的Get請求並輸出字符串(String)、二進制數據(Data)和JSON數據。git
首先確保在項目中已經安裝了所需的第三方庫。github
點擊【Podfile】,查看安裝配置文件。json
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
根據配置文件中的相關配置,安裝第三方庫。swift
而後點擊打開【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 responseHandler() 13 14 //字符串 15 //responseStringHandler() 16 17 //二進制 18 //responseDataHandler() 19 20 //JSON 21 //responseJsonHandler() 22 } 23 24 //添加一個方法,處理沒法明確服務器返回數據的格式的狀況 25 func responseHandler() 26 { 27 //調用網絡操做庫的網絡請求方法,並處理從服務器返回的信息 28 Alamofire.request("https://httpbin.org/get").response 29 { 30 response in 31 //在控制檯輸出:返回的網絡請求對象 32 print("Request: \(response.request)") 33 //在控制檯輸出:網絡返回對象 34 print("Response: \(response.response)") 35 //在控制檯輸出:錯誤信息 36 print("Error: \(response.error)") 37 38 //得到網絡返回的數據,並對數據進行字符編碼 39 if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) 40 { 41 //在控制檯輸出編碼後的內容 42 print("Data: \(utf8Text)") 43 } 44 } 45 } 46 47 //添加一個方法,用來解析由服務器返回的字符串數據 48 func responseStringHandler() 49 { 50 //調用網絡操做庫的網絡請求方法,並處理從服務器返回的字符串數據 51 Alamofire.request("https://httpbin.org/get").responseString 52 { 53 response in 54 //在控制檯輸出:網絡請求是否成功 55 print("Success: \(response.result.isSuccess)") 56 //在控制檯輸出:網絡返回結果的值 57 print("Response String: \(response.result.value)") 58 } 59 } 60 61 //添加一個方法,用來解析由服務器返回的二進制數據 62 func responseDataHandler() 63 { 64 //調用網絡操做庫的網絡請求方法,並處理從服務器返回的二進制數據 65 Alamofire.request("https://httpbin.org/get").responseData 66 { 67 response in 68 //在控制檯輸出返回對象的詳細信息 69 debugPrint("All Response Info: \(response)") 70 71 //得到網絡返回的數據,並對數據進行字符編碼 72 if let data = response.result.value, let utf8Text = String(data: data, encoding: .utf8) 73 { 74 //在控制檯輸出編碼後的內容 75 print("Data: \(utf8Text)") 76 } 77 } 78 } 79 80 //添加一個方法,用來解析由服務器返回的JSON數據 81 func responseJsonHandler() 82 { 83 //調用網絡操做庫的網絡請求方法,並處理從服務器返回的JSON數據 84 Alamofire.request("https://httpbin.org/get").responseJSON 85 { 86 response in 87 //在控制檯輸出返回對象的詳細信息 88 debugPrint(response) 89 90 //得到網絡返回的數據,並對數據進行字符編碼 91 if let json = response.result.value 92 { 93 //在控制檯輸出編碼後的內容 94 print("JSON: \(json)") 95 } 96 } 97 } 98 99 override func didReceiveMemoryWarning() { 100 super.didReceiveMemoryWarning() 101 // Dispose of any resources that can be recreated. 102 } 103 }