首頁 web前端 js教程 AFN封裝網路請求詳解

AFN封裝網路請求詳解

Apr 16, 2018 pm 03:43 PM
網路 詳解 請求

這次帶給大家AFN封裝網路請求詳解,AFN封裝網路請求的注意事項有哪些,下面就是實戰案例,一起來看一下。

相信大家都知道,我們一般在一個專案中,網路請求都封裝成一個單例,以確保整個專案的網路請求Session 是同一個.

單例模式定義:一個類別有且僅有一個實例,並且自行實例化向整個系統提供,下面話不多說了,來一起看看詳細的介紹吧。

透過cocoaPods 導入第三方框架

01-切換到專案目錄

cd 项目名称
登入後複製

# 02-初始化Pods

pod init
登入後複製

03-開啟 Pods 檔案

open Podfile
登入後複製

# 04-編輯 Podfile

# 设置支持最低平台
platform :ios, '8.0'
target 'TestSwiftMixAFN' do
 # 如果是Swift项目,需添加"use_frameworks!"
 use_frameworks!
pod "AFNetworking"
end
登入後複製

# 05-安裝 Pods

pod install
登入後複製

封裝AFN網路請求工具

# 1 建立一個工具類別, 繼承自 AFHTTPSessionManager

import AFNetworking
class XMSessionManager: AFHTTPSessionManager {
 // ...
}
登入後複製

2 透過單例建立一個AFHTTPSessionManager 實例

/// 创建网络请求单例
static let shared: XMSessionManager = XMSessionManager()
----------------------------------------------------------------
/// 如果需要设置请求的属性,可在闭包中添加
/// 在第一次访问时,执行闭包,并且将结果保存在 shared 常量中
 static let shared1: XMSessionManager = {
  // 实例化对象
  let manager = XMSessionManager()
  // 设置响应反序列化支持的数据类型
  manager.responseSerializer.acceptableContentTypes?.insert("text/plain")
  // 返回对象
  return manager
 }()
登入後複製

3 透過列舉, 新增HTTP請求方法(GET/POST)

/// 枚举-请求方法
///
/// - GET: GET
/// - POST: POST
enum XMHTTPMethod {
 case GET
 case POST
}
登入後複製

4 自訂網路請求方法,透過閉包回呼請求完成後的資料

/// 封装网络请求方法
 ///
 /// - Parameters:
 /// - Method: GET/POST, 默认是GET请求
 /// - URLString: 请求地址
 /// - parameters: 参数
 /// - completed: 结束回调
 func request(Method:XMHTTPMethod = .GET, URLString: String,parameters: [String: AnyObject]?, completed:@escaping ((_ json: AnyObject?, _ isSuccess: Bool)->())) {
  /// 定义成功回调闭包
  let success = { (task: URLSessionDataTask,json: Any?)->() in
   completed(json as AnyObject?,true)
  }
  /// 定义失败回调闭包
  let failure = {(task: URLSessionDataTask?, error: Error)->() in
   completed(nil,false)
  }
  /// 通过请求方法,执行不同的请求
  // 如果是 GET 请求
  if Method == .GET { // GET
   get(URLString, parameters: parameters, progress: nil, success: success, failure: failure)
  } else { // POST
   post(URLString, parameters: parameters, progress: nil, success: success, failure: failure)
  }
 }
登入後複製

# 5 網路請求工具的使用

///GET 请求
  XMSessionManager.shared.request(URLString: "http:xxx", parameters: nil, completed:{(json: AnyObject?,isSuccess: Bool)-> () in
   // 请求成功
   if isSuccess {
    print(json ?? "")
   } else {
    print("请求失败")
   }
  })
///POST 请求
  XMSessionManager.shared.request(URLString: "www.xxx.xxx", parameters: ["key":"value" as AnyObject], completed:{(json: AnyObject?,isSuccess: Bool)-> () in
   // 请求成功
   if isSuccess {
    print(json ?? "")
   } else {
    print("请求失败")
   }
  })
登入後複製

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:



#

以上是AFN封裝網路請求詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1660
14
CakePHP 教程
1416
52
Laravel 教程
1310
25
PHP教程
1259
29
C# 教程
1233
24
WLAN擴充模組已停止[修復] WLAN擴充模組已停止[修復] Feb 19, 2024 pm 02:18 PM

如果您的Windows電腦上的WLAN擴充模組出現問題,可能會導致您與網際網路中斷連線。這種情況常常讓人感到困擾,但幸運的是,本文提供了一些簡單的建議,可以幫助您解決這個問題,讓您的無線連線重新正常運作。修復WLAN擴充模組已停止如果您的Windows電腦上的WLAN可擴充性模組已停止運作,請依照下列建議進行修復:執行網路和Internet故障排除程式停用並重新啟用無線網路連線重新啟動WLAN自動設定服務修改電源選項修改高級電源設定重新安裝網路適配器驅動程式運行一些網路命令現在,讓我們來詳細看

win10無法上網右下角顯示地球怎麼辦 win10網路成地球無法上網的多種解決方法 win10無法上網右下角顯示地球怎麼辦 win10網路成地球無法上網的多種解決方法 Feb 29, 2024 am 09:52 AM

這篇文章將介紹Win10系統網路顯示地球標誌但無法上網的解決方法。文章將提供詳細的操作步驟,幫助讀者解決Win10網路顯示地球無法上網的問題。方法一:直接重啟先檢查網路線是否沒插好,寬頻是否欠費,路由器或光貓可能會卡死,這時需重新啟動路由器或光貓。假如目前電腦沒有重要的事宜在操作,能直接重啟電腦,大部分的小問題能透過重新啟動電腦來快速解決。如果確定寬頻沒有欠費,網路正常,那便是另一回事。方法二:1、按【Win】鍵,或點選左下角的【開始選單】,在開啟的選單項目中,點選電源按鈕上方的齒輪狀圖標,這個就是【設

檢查網路連線:lol無法連接伺服器 檢查網路連線:lol無法連接伺服器 Feb 19, 2024 pm 12:10 PM

LOL無法連接伺服器請檢查網路近年來,網路遊戲已經成為了許多人的日常娛樂活動。其中,英雄聯盟(LOL)作為一款非常受歡迎的多人線上遊戲,吸引了億萬玩家的參與和愛好。然而,有時候我們在玩LOL的時候會遇到「無法連接伺服器請檢查網路」的錯誤提示,這無疑給玩家們帶來了一些困擾。接下來,我們將探討該錯誤的出現原因和解決方法。首先,LOL無法連接伺服器的問題可能是

網路連不上wifi怎麼回事 網路連不上wifi怎麼回事 Apr 03, 2024 pm 12:11 PM

1.檢查wifi密碼:確保自己輸入的wifi密碼是正確的,並注意區分大小寫。 2.確認wifi是否正常運作:檢查wifi路由器是否正常運作,可將其他裝置連接至相同路由器,以確定問題是否出在裝置上。 3.重新啟動設備和路由器:有時候,設備或路由器發生故障或網路問題,重新啟動設備和路由器可能會解決問題。 4.檢查設備設定:確保設備無線功能為開啟狀態,且未將wifi功能停用。

Win11管理員權限取得詳解 Win11管理員權限取得詳解 Mar 08, 2024 pm 03:06 PM

Windows作業系統是全球最受歡迎的作業系統之一,其新版本Win11備受矚目。在Win11系統中,管理員權限的取得是一個重要的操作,管理員權限可以讓使用者對系統進行更多的操作和設定。本文將詳細介紹在Win11系統中如何取得管理員權限,以及如何有效地管理權限。在Win11系統中,管理員權限分為本機管理員和網域管理員兩種。本機管理員是指具有對本機電腦的完全管理權限

Windows 11 資料夾共用指南:輕鬆分享你的檔案和資料 Windows 11 資料夾共用指南:輕鬆分享你的檔案和資料 Mar 13, 2024 am 11:49 AM

在日常生活和工作中,我們經常需要在不同裝置之間共用檔案和資料夾。 Windows11系統提供了方便的內建資料夾共用功能,讓我們可以輕鬆地在同一網路內安全地與他人分享所需內容,同時保護個人檔案的隱私。這項功能使文件共享變得簡單而高效,不必擔心洩露私人資訊。透過Windows11系統的資料夾共享功能,我們可以更方便地進行合作、交流和協作,提高工作效率和生活便利性。為了順利配置共用資料夾,我們首先需要滿足以下條件:所有(參與共享的)設備都連接到同一個網路。啟用「網路發現」並配置好共享。知道目標設備中的

win10家用版公用網絡改為專用網絡 win10家用版公用網絡改為專用網絡 Feb 12, 2024 pm 10:27 PM

我們的電腦要想使用起來除了一些硬體以外還需要連接穩定的網絡,很多小伙伴們都發現了電腦中的網絡分為公用網絡和專用網絡,很多人都好奇到底怎麼將公用網絡轉換成專用網絡。 win10家庭版公用網路改為專用網路一、高級共享中心的進階設定1、首先我們直接按下win+R的快捷鍵組合召喚出運行彈窗,然後在這裡輸入“controlpanel”,點擊確定開啟控制面板。 2、然後我們依序選擇網路和lnternet--網路和共享中心--更改進階共享設定。 3、隨後我們在更高進階共享設定介面中找打專用選項點開,勾選其中的「啟用

Oracle SQL中的除法運算詳解 Oracle SQL中的除法運算詳解 Mar 10, 2024 am 09:51 AM

OracleSQL中的除法運算詳解在OracleSQL中,除法運算是一種常見且重要的數學運算運算,用來計算兩個數相除的結果。除法在資料庫查詢中經常用到,因此了解OracleSQL中的除法運算及其用法是資料庫開發人員必備的技能之一。本文將詳細討論OracleSQL中除法運算的相關知識,並提供具體的程式碼範例供讀者參考。一、OracleSQL中的除法運算

See all articles