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

织梦做的网站怎么样展馆设计方案

织梦做的网站怎么样,展馆设计方案,百度西安研发中心,手机网站应该怎么做Alamofire 官方仓库地址#xff1a;https://github.com/Alamofire/Alamofire xcode中安装和使用#xff1a;swift网络库Alamofire的安装及简单使用#xff0c;苹果开发必备-CSDN博客 Alamofire是一个基于Swift语言开发的优秀网络请求库。它封装了底层的网络请求工作… Alamofire 官方仓库地址https://github.com/Alamofire/Alamofire xcode中安装和使用swift网络库Alamofire的安装及简单使用苹果开发必备-CSDN博客 Alamofire是一个基于Swift语言开发的优秀网络请求库。它封装了底层的网络请求工作提供了更简单、更易用的接口大大简化了网络请求代码的编写。Alamofire提供了一套优雅且易于理解的API使得开发者可以轻松发起各种类型的HTTP请求。它支持GET、POST、PUT、DELETE等常用的请求方法并且提供了丰富的参数设置选项。Alamofire提供了强大的响应处理功能支持数据解析、文件上传和下载等常见需求。它基于Swift的特性和语法代码简洁、可读性强易于维护和扩展。 GET请求 get请求是最常见的一种请求方式了默认AF.request发送的就是get请求代码示例 // get请求func getData() {print(发送get请求)// 准备一个urllet url https://github.com/xiaoyouxinqing/PostDemo/raw/master/PostDemo/Resources/PostListData_hot_1.json// 使用Alamofile发起请求默认是GETAF.request(url).responseData(completionHandler: { res in// response.result为枚举类型所以需要使用switchswitch res.result {case let .success(Data):// 将Data类型的数据转为Json字符串let jsonString try? JSONSerialization.jsonObject(with: Data)// 打印json字符串print(success\(String(describing: jsonString)))case let .failure(error):print(error\(error))}// print(响应数据\(res.result))})}POST请求 发送post请求要带上method参数设置为.post携带的参数放parameters里面如果想让返回的数据直接是json格式的可以使用.responseJSON代码示例 // post请求func postData() {print(发送post请求)let urlStr https://api.weixin.qq.com/wxa/business/getuserphonenumber// payload 数据let payload [name: hibo, password: 123456]AF.request(urlStr, method: .post, parameters: payload).responseJSON { response inswitch response.result {case let .success(json):print(post response: \(json))case let .failure(error):print(error:\(error))}}} 其他的put/delete等请求和post一样只是参数不一样而已 post等请求参数解析 Parameter:Encodable 只要参数遵循Encodable协议那么最终ParameterEncoder都会把Parameter encode成需要的数据类型 举个例子 struct Login: Encodable {let email:Stringlet password:String }let login Login(email: aaa, password: bbb) AF.request(https://httpbin.org/post,method: .post,parameters: login,encoder: JSONParameterEncoder.default).response { response indebugPrint(response) } Headers请求头设置  设置请求头有三种方式 1.无参构造  /// 1. 无参构造 public init() {}/// 通过以下方式添加值 func add(name: String, value: String) func add(_ header: HTTPHeader) 2.通过 HTTPHeader 数组构造 /// 2. 通过 HTTPHeader 数组构造 public init(_ headers: [HTTPHeader])let headers: HTTPHeaders [HTTPHeader(name: Authorization, value: Basic VXNlcm5hbWU6UGFzc3dvcmQ),HTTPHeader(name: Accept, value: application/json) ]AF.request(https://httpbin.org/headers, headers: headers).responseJSON { response indebugPrint(response) } 3.通过key/value 构造  /// 3. 通过key/value 构造 public init(_ dictionary: [String: String])let headers: HTTPHeaders [Authorization: Basic VXNlcm5hbWU6UGFzc3dvcmQ,Accept: application/json ]AF.request(https://httpbin.org/headers, headers: headers).responseJSON { response indebugPrint(response) } 响应处理 1.Alamofire 提供了4种 Response序列化工具DataResponseSerializer 解析为Data // Response Handler - Unserialized Response func response(queue: DispatchQueue .main, completionHandler: escaping (AFDataResponseData?) - Void) - Self// Response Data Handler - Serialized into Data func responseData(queue: DispatchQueue .main,dataPreprocessor: DataPreprocessor DataResponseSerializer.defaultDataPreprocessor,emptyResponseCodes: SetInt DataResponseSerializer.defaultEmptyResponseCodes,emptyRequestMethods: SetHTTPMethod DataResponseSerializer.defaultEmptyRequestMethods,completionHandler: escaping (AFDataResponseData) - Void) - Self//示例 AF.request(https://httpbin.org/get).responseData { response indebugPrint(Response: \(response)) } 2.StringResponseSerializer 解析为String // Response String Handler - Serialized into String func responseString(queue: DispatchQueue .main,dataPreprocessor: DataPreprocessor StringResponseSerializer.defaultDataPreprocessor,encoding: String.Encoding? nil,emptyResponseCodes: SetInt StringResponseSerializer.defaultEmptyResponseCodes,emptyRequestMethods: SetHTTPMethod StringResponseSerializer.defaultEmptyRequestMethods,completionHandler: escaping (AFDataResponseString) - Void) - Self//示例 AF.request(https://httpbin.org/get).responseString { response indebugPrint(Response: \(response)) } 3.JSONResponseSerializer 解析为JSON // Response JSON Handler - Serialized into Any Using JSONSerialization func responseJSON(queue: DispatchQueue .main,dataPreprocessor: DataPreprocessor JSONResponseSerializer.defaultDataPreprocessor,emptyResponseCodes: SetInt JSONResponseSerializer.defaultEmptyResponseCodes,emptyRequestMethods: SetHTTPMethod JSONResponseSerializer.defaultEmptyRequestMethods,options: JSONSerialization.ReadingOptions .allowFragments,completionHandler: escaping (AFDataResponseAny) - Void) - Self //示例 AF.request(https://httpbin.org/get).responseJSON { response indebugPrint(Response: \(response)) } 下载文件 1.下载Data AF.download(https://httpbin.org/image/png).responseData { response inif let data response.value {let image UIImage(data: data)} } 2.下载到指定目录 let destination DownloadRequest.suggestedDownloadDestination(for: .documentDirectory) AF.download(https://httpbin.org/image/png, to: destination).response { response indebugPrint(response)if response.error nil, let imagePath response.fileURL?.path {let image UIImage(contentsOfFile: imagePath)} } 3.下载进度 AF.download(https://httpbin.org/image/png).downloadProgress { progress inprint(Download Progress: \(progress.fractionCompleted))}.responseData { response inif let data response.value {let image UIImage(data: data)}} 4.恢复下载 var resumeData: Data!let download AF.download(https://httpbin.org/image/png).responseData { response inif let data response.value {let image UIImage(data: data)} }// download.cancel(producingResumeData: true) // Makes resumeData available in response only. download.cancel { data inresumeData data }AF.download(resumingWith: resumeData).responseData { response inif let data response.value {let image UIImage(data: data)} } 上传文件 1.上传 Data let data Data(data.utf8)AF.upload(data, to: https://httpbin.org/post).responseDecodable(of: HTTPBinResponse.self) { response indebugPrint(response) } 2.上传文件 let fileURL Bundle.main.url(forResource: video, withExtension: mov)AF.upload(fileURL, to: https://httpbin.org/post).responseDecodable(of: HTTPBinResponse.self) { response indebugPrint(response) } 3.上传 Multipart Data AF.upload(multipartFormData: { multipartFormData inmultipartFormData.append(Data(one.utf8), withName: one)multipartFormData.append(Data(two.utf8), withName: two) }, to: https://httpbin.org/post).responseDecodable(of: HTTPBinResponse.self) { response indebugPrint(response)} 4.上传进度 let fileURL Bundle.main.url(forResource: video, withExtension: mov)AF.upload(fileURL, to: https://httpbin.org/post).uploadProgress { progress inprint(Upload Progress: \(progress.fractionCompleted))}.responseDecodable(of: HTTPBinResponse.self) { response indebugPrint(response)}
http://www.hkea.cn/news/14425704/

相关文章:

  • 深圳建设局官网站首页大数据营销精准营销
  • 厦门市网站建设软件开发公司电商手机网站开发
  • 知名外贸网站建设公司河南省住房城乡与建设厅网站
  • 做的网站老被攻击月嫂的个人简历网站模板
  • 东莞做外贸网站深圳有名的建筑公司
  • 交河网站建设wordpress asp.net
  • 校园论坛网站源码软件开发上海
  • 公司官网网站如何建立公司的研究与开发
  • 家居商城网站模板秦皇岛营销式网站制作
  • 网页具有动画网站建设技术公众号绑定网站
  • 国外平面设计分享网站有哪些wordpress修改底部联系QQ
  • 手机网站建设方法鄂州网站建设推广报价
  • 湖州市交通建设管理局网站做网站企业 金坛
  • 专做polo衫的网站泰州网页设计需要多少钱
  • wordpress网站翻译插件网站建设001
  • 石景山网站建设多少钱上海公司网站建设以子
  • 制作网站结构设计wordpress图片视频分享代码
  • 如何从建设局网站上更换职称人员wordpress循环该分类子分类
  • 网站建设与管理教学方案广州地铁
  • 网站开发 python怎么注册一个网站
  • 浙江网站建设推广公司十大排行网页设计及讲解多少钱
  • 学做网站需要多久时间哪家公司做网站不错
  • 企业网站宣传怎么用wordpress建立自己的网站吗
  • 山东省建设注册执业中心网站做网站学哪种代码好
  • 沈阳网站建设活动方案免费做网站软件下载
  • 网站开发代码语言沈阳网站排名工具
  • 网站开发前期方案唐山自助建站软件
  • 柳州建站公司南宁市建设工程信息网
  • jsp的网站电子商务网站建设汉狮
  • 网站技术报务费如何做会计分录零距离seo