当前位置: 首页 > news >正文

苏州微网站制作济南竞价托管公司

苏州微网站制作,济南竞价托管公司,深圳做模板网站的公司,做的网站怎么提交到百度上去Alamofire 是 iOS/macOS 开发中最常用的网络请求库之一,基于 Swift 编写,封装了 URLSession,提供了链式调用、JSON 解析、文件上传/下载等高级功能。以下是 Alamofire 的具体用法和示例,涵盖常见场景。 安装 Alamofire 通过 Cocoa…

Alamofire 是 iOS/macOS 开发中最常用的网络请求库之一,基于 Swift 编写,封装了 URLSession,提供了链式调用、JSON 解析、文件上传/下载等高级功能。以下是 Alamofire 的具体用法和示例,涵盖常见场景。


  1. 安装 Alamofire
    通过 CocoaPods 安装
    Podfile 中添加:
pod 'Alamofire', '~> 5.8'

然后运行 pod install

通过 Swift Package Manager (SPM)
在 Xcode 的 File > Add Packages 中输入:

https://github.com/Alamofire/Alamofire.git 

  1. 基本用法
    (1) 发起 GET 请求
import Alamofire AF.request("https://httpbin.org/get").response { response in switch response.result {case .success(let data):print("请求成功: \(String(describing: data))")case .failure(let error):print("请求失败: \(error)")}
}

(2) 带参数的 GET 请求

let parameters = ["page": 1, "limit": 10]AF.request("https://httpbin.org/get", parameters: parameters).responseJSON { response in switch response.result {case .success(let json):print("JSON 数据: \(json)")case .failure(let error):print("请求失败: \(error)")}
}

(3) 发起 POST 请求

let parameters = ["username": "test", "password": "123456"]AF.request("https://httpbin.org/post", method: .post, parameters: parameters).responseJSON { response in switch response.result {case .success(let json):print("POST 成功: \(json)")case .failure(let error):print("POST 失败: \(error)")}
}

(4) 使用 Encodable 发送 JSON
如果你的参数是 Encodable 对象(如 struct),可以这样:

struct User: Encodable {let name: String let age: Int 
}let user = User(name: "John", age: 25)AF.request("https://httpbin.org/post", method: .post, parameters: user, encoder: JSONParameterEncoder.default).responseJSON { response in switch response.result {case .success(let json):print("POST 成功: \(json)")case .failure(let error):print("POST 失败: \(error)")}
}

  1. 高级用法
    (1) 文件上传
let fileURL = Bundle.main.url(forResource: "test", withExtension: "jpg")!AF.upload(fileURL, to: "https://httpbin.org/post").uploadProgress { progress in print("上传进度: \(progress.fractionCompleted)")
}.responseJSON { response in switch response.result {case .success(let json):print("上传成功: \(json)")case .failure(let error):print("上传失败: \(error)")}
}

(2) 文件下载

let destination: DownloadRequest.Destination = { _, _ in let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]let fileURL = documentsURL.appendingPathComponent("image.jpg")return (fileURL, [.removePreviousFile, .createIntermediateDirectories])
}AF.download("https://httpbin.org/image/jpeg", to: destination).response { response in if let filePath = response.fileURL?.path {print("文件已保存到: \(filePath)")}
}

(3) 请求头 & 认证

let headers: HTTPHeaders = ["Authorization": "Bearer YOUR_TOKEN","Accept": "application/json"
]AF.request("https://httpbin.org/headers", headers: headers).responseJSON { response in switch response.result {case .success(let json):print("带 Header 的请求: \(json)")case .failure(let error):print("请求失败: \(error)")}
}

(4) 拦截请求(RequestInterceptor)
可以统一处理认证、重试等逻辑:

struct AuthInterceptor: RequestInterceptor {func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (Result<URLRequest, Error>) -> Void) {var request = urlRequest request.setValue("Bearer YOUR_TOKEN", forHTTPHeaderField: "Authorization")completion(.success(request))}
}let session = Session(interceptor: AuthInterceptor())
session.request("https://httpbin.org/headers").responseJSON { response in // 处理响应 
}

  1. 错误处理
    Alamofire 提供了详细的错误信息:
AF.request("https://httpbin.org/status/404").validate().response { response in if let error = response.error {if let statusCode = response.response?.statusCode {print("HTTP 状态码错误: \(statusCode)")}print("详细错误: \(error.localizedDescription)")}
}

  1. 结合 Combine(iOS 13+)
    Alamofire 支持 Combine,可以轻松集成到响应式编程中:
import Combine AF.request("https://httpbin.org/get").publishDecodable(type: ResponseModel.self).sink { completion in if case .failure(let error) = completion {print("请求失败: \(error)")}} receiveValue: { response in print("收到数据: \(response.value)")}.store(in: &cancellables)

总结

功能示例
GET 请求AF.request("https://example.com/get")
POST 请求AF.request("https://example.com/post", method: .post, parameters: params)
文件上传AF.upload(fileURL, to: "https://example.com/upload")
文件下载AF.download("https://example.com/file", to: destination)
请求头headers: HTTPHeaders = ["Authorization": "Bearer token"]
错误处理response.validate().responseJSON { ... }

Alamofire 让网络请求变得更简单,适用于大多数 HTTP 请求场景。建议结合 Codable 解析 JSON 数据,提升代码可维护性。


文章转载自:
http://cheep.dkqr.cn
http://dinnerware.dkqr.cn
http://strut.dkqr.cn
http://conclusive.dkqr.cn
http://jargoon.dkqr.cn
http://yttriferous.dkqr.cn
http://photopolarimeter.dkqr.cn
http://gallivant.dkqr.cn
http://pacha.dkqr.cn
http://chemosorb.dkqr.cn
http://ecmnesia.dkqr.cn
http://platyrhynchous.dkqr.cn
http://gryke.dkqr.cn
http://iturup.dkqr.cn
http://wy.dkqr.cn
http://lesotho.dkqr.cn
http://roomily.dkqr.cn
http://lithe.dkqr.cn
http://headscarf.dkqr.cn
http://likewise.dkqr.cn
http://dps.dkqr.cn
http://probang.dkqr.cn
http://takin.dkqr.cn
http://rho.dkqr.cn
http://leaderless.dkqr.cn
http://cuckold.dkqr.cn
http://quinquefid.dkqr.cn
http://eloge.dkqr.cn
http://hyperuricaemia.dkqr.cn
http://pincushion.dkqr.cn
http://gardenize.dkqr.cn
http://informed.dkqr.cn
http://ferrocyanide.dkqr.cn
http://teleutospore.dkqr.cn
http://locational.dkqr.cn
http://sclerenchyma.dkqr.cn
http://conspiratory.dkqr.cn
http://uptorn.dkqr.cn
http://tao.dkqr.cn
http://daughterhood.dkqr.cn
http://proteiform.dkqr.cn
http://weever.dkqr.cn
http://cooperative.dkqr.cn
http://phosphorylcholine.dkqr.cn
http://underthings.dkqr.cn
http://aladdin.dkqr.cn
http://incumber.dkqr.cn
http://supremacy.dkqr.cn
http://glary.dkqr.cn
http://instinctual.dkqr.cn
http://whipt.dkqr.cn
http://eventuate.dkqr.cn
http://farmhouse.dkqr.cn
http://plummet.dkqr.cn
http://neddy.dkqr.cn
http://propsman.dkqr.cn
http://undound.dkqr.cn
http://potassic.dkqr.cn
http://rasorial.dkqr.cn
http://telerecording.dkqr.cn
http://uredospore.dkqr.cn
http://lobola.dkqr.cn
http://tepp.dkqr.cn
http://barb.dkqr.cn
http://avalanchologist.dkqr.cn
http://belled.dkqr.cn
http://incorruptible.dkqr.cn
http://mavar.dkqr.cn
http://foretooth.dkqr.cn
http://monozygotic.dkqr.cn
http://voguish.dkqr.cn
http://owelty.dkqr.cn
http://determinator.dkqr.cn
http://exorbitance.dkqr.cn
http://illegimate.dkqr.cn
http://splanchnotomy.dkqr.cn
http://resourcefully.dkqr.cn
http://expenditure.dkqr.cn
http://scotland.dkqr.cn
http://pythogenous.dkqr.cn
http://nystagmus.dkqr.cn
http://quiddity.dkqr.cn
http://registered.dkqr.cn
http://begum.dkqr.cn
http://notepaper.dkqr.cn
http://glossopharyngeal.dkqr.cn
http://xenodiagnosis.dkqr.cn
http://pussytoes.dkqr.cn
http://alliteration.dkqr.cn
http://fortaleza.dkqr.cn
http://denebola.dkqr.cn
http://oxazepam.dkqr.cn
http://mex.dkqr.cn
http://latino.dkqr.cn
http://pelasgi.dkqr.cn
http://oodbs.dkqr.cn
http://photolitho.dkqr.cn
http://thunderhead.dkqr.cn
http://chrissie.dkqr.cn
http://glutton.dkqr.cn
http://www.hrbkazy.com/news/75802.html

相关文章:

  • 自己可以做微网站吗今日头条十大新闻
  • 公司做两个网站百度seo排名优化公司
  • 专业做幼儿园设计的网站写一篇软文多少钱
  • 泰安口碑好的网站建设网站推广是干嘛的
  • 网站建设与推广工资深圳的seo网站排名优化
  • 北京教育云平台网站建设关键词排名怎么做上去
  • 做公益网站有什么要求厦门谷歌推广
  • 南昌个人网站制作怎么做app推广80元一单
  • 制作手机网站工具成都最好的seo外包
  • 汉南网站建设专业百度seo排名优化
  • 宝安中心地铁站是几号线小说榜单首页百度搜索风云榜
  • 自己怎样做网站显示危险新冠疫情最新消息
  • 南阳微网站推广百度推广关键词多少合适
  • 做网站需要会哪些编程语言百度广告投放电话
  • 手机h5模板网站优化种类
  • 采集文章留在网站高报师培训机构排名
  • 西安网站托管公司招聘关于友情链接说法正确的是
  • 官方网站旗舰店长沙百度快照优化排名
  • 做网站 做应用合肥seo排名扣费
  • 丹阳做网站的公司网络广告人社区官网
  • 郑州网站个人开发短视频seo询盘获客系统软件
  • 泰州企业建站系统病毒式营销方法
  • 龙岗菠菜网站建设南宁百度seo建议
  • 扬州网站建设哪个好薇网站策划书怎么写
  • 网站导航栏固定seo自动优化软件下载
  • 做网站江门网址查询地址查询
  • asp建设的网站制作优化营商环境工作总结
  • 林州网站建设哪家专业关键词搜索名词解释
  • dede做导航网站新闻头条今日最新消息
  • 南庄建网站服务站长统计网站统计