Alamofire - Swift 下的优雅 HTTP 网络库

Alamofire

Alamofire 是一个用 Swift 编写的 HTTP 网络库,基于 Foundation URL 加载系统,提供了优雅的 API 设计,让网络请求变得更加简单高效。

功能特性

  • 优雅的链式 API:简洁直观的请求构建方式
  • 全面的 HTTP 方法支持:GET、POST、PUT、DELETE 等
  • 参数编码:支持 URL 编码、JSON 编码等多种参数编码方式
  • 响应序列化:内置 JSON、字符串、数据等多种响应解析方式
  • 请求/响应拦截:支持请求适配器和重试机制
  • 身份验证:支持基本认证、OAuth 等
  • 文件上传/下载:支持进度跟踪和断点续传
  • SSL 证书验证:增强网络安全性
  • 全面的平台支持:iOS、macOS、watchOS 和 tvOS

安装指南

Swift Package Manager

在 Package.swift 中添加依赖:

swift 复制代码
dependencies: [
    .package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.0.0")
]

CocoaPods

在 Podfile 中添加:

ruby 复制代码
pod 'Alamofire', '~> 5.0'

Carthage

在 Cartfile 中添加:

复制代码
github "Alamofire/Alamofire" ~> 5.0

使用说明

基本请求

swift 复制代码
import Alamofire

AF.request("https://httpbin.org/get").response { response in
    debugPrint(response)
}

POST 请求

swift 复制代码
let parameters = ["username": "user", "password": "123456"]

AF.request("https://httpbin.org/post", 
           method: .post, 
           parameters: parameters).responseJSON { response in
    switch response.result {
    case .success(let value):
        print("Response: \(value)")
    case .failure(let error):
        print("Error: \(error)")
    }
}

下载文件

swift 复制代码
AF.download("https://httpbin.org/image/png").responseData { response in
    if let data = response.value {
        let image = UIImage(data: data)
    }
}

上传文件

swift 复制代码
let fileURL = Bundle.main.url(forResource: "video", withExtension: "mov")

AF.upload(fileURL, to: "https://httpbin.org/post").uploadProgress { progress in
    print("Upload Progress: \(progress.fractionCompleted)")
}.responseJSON { response in
    debugPrint(response)
}

更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)

公众号二维码

相关推荐
粟悟饭&龟波功8 小时前
【网络安全】一、入门篇:读懂 HTTP 协议
安全·web安全·http
豆沙沙包?10 小时前
http/1.1,http/2和http/3、三次握手和四次挥手
网络·网络协议·http
阿蓝85814 小时前
iOS代码架构
ios
非专业程序员14 小时前
从0到1自定义文字排版引擎:原理篇
前端·ios
2501_9159184116 小时前
Video over HTTPS,视频流(HLSDASH)在 HTTPS 下的调试与抓包实战
网络协议·http·ios·小程序·https·uni-app·iphone
半桔19 小时前
【网络编程】深入 HTTP:从报文交互到服务构建,洞悉核心机制
linux·网络·c++·网络协议·http·交互
2501_916013741 天前
iOS 26 系统流畅度检测 从视觉特效到帧率稳定的实战策略
android·macos·ios·小程序·uni-app·cocoa·iphone
Jackilina_Stone1 天前
一个高性能的HTTP和反向代理服务器:Nginx
nginx·http·ai 推理·nv
艾菜籽1 天前
网络原理-HTTP补充1
网络·网络协议·http
咕噜企业签名分发-淼淼1 天前
App防止恶意截屏功能的方法:iOS、Android和鸿蒙系统的实现方案
android·ios·harmonyos