博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift3 0 Alamofire的集成与封装
阅读量:5823 次
发布时间:2019-06-18

本文共 3285 字,大约阅读时间需要 10 分钟。

Alamofire的集成请看这篇文章 这篇文章很详细的写了项目如何集成Alamofire这个网络框架 Alamofire的作者推荐我们使用 我本来打算使用CocoaPods去安装,提示安装成功,

运行时报一大堆的错误,如图

按照操作去转换,也没什么卵用,还是错误一堆,而且还无法更改(如果有大神知道解决办法,求告知!)

我是通过第一种方法导入的Alamofire,现在可以正常的进行网络请求,不过好像还是有一点小问题

在项目的目录里却没有这个,我现在是手动把这些添加到我们自己的项目

现在对Alamofire进行封装

创建一个文件,赋值下面的代码

import UIKitimport Alamofireprivate let NetworkRequestShareInstance = MCNetworkRequest()class MCNetworkRequest: NSObject {class var sharedInstance : MCNetworkRequest {    return NetworkRequestShareInstance}}  extension MCNetworkRequest {    //MARK: - GET 请求    //    let tools : NetworkRequest.shareInstance!func getRequest(urlString: String, params : [String : Any], success : @escaping (_ response : [String : AnyObject])->(), failture : @escaping (_ error : Error)->()) {        //使用Alamofire进行网络请求时,调用该方法的参数都是通过getRequest(urlString, params, success :, failture :)传入的,而success传入的其实是一个接受           [String : AnyObject]类型 返回void类型的函数        Alamofire.request(urlString, method: .get, parameters: params)        .responseJSON { (response) in/*这里使用了闭包*/            //当请求后response是我们自定义的,这个变量用于接受服务器响应的信息            //使用switch判断请求是否成功,也就是response的result            switch response.result {            case .success(let value):                //当响应成功是,使用临时变量value接受服务器返回的信息并判断是否为[String: AnyObject]类型 如果是那么将其传给其定义方法中的success                //                    if let value = response.result.value as? [String: AnyObject] {                success(value as! [String : AnyObject])                //                    }                let json = JSON(value)                print(json)                            case .failure(let error):                failture(error)                print("error:\(error)")            }    }    }//MARK: - POST 请求func postRequest(urlString : String, params : [String : Any], success : @escaping (_ response : [String : AnyObject])->(), failture : @escaping (_ error : Error)->()) {        Alamofire.request(urlString, method: HTTPMethod.post, parameters: params).responseJSON { (response) in        switch response.result{        case .success:            if let value = response.result.value as? [String: AnyObject] {                success(value)                let json = JSON(value)                print(json)            }        case .failure(let error):            failture(error)            print("error:\(error)")        }            }}//MARK: - 照片上传////// - Parameters:///   - urlString: 服务器地址///   - params: ["flag":"","userId":""] - flag,userId 为必传参数///        flag - 666 信息上传多张  -999 服务单上传  -000 头像上传///   - data: image转换成Data///   - name: fileName///   - success:///   - failture:func upLoadImageRequest(urlString : String, params:[String:String], data: [Data], name: [String],success : @escaping (_ response : [String : AnyObject])->(), failture : @escaping (_ error : Error)->()){        let headers = ["content-type":"multipart/form-data"]        Alamofire.upload(        multipartFormData: { multipartFormData in            //666多张图片上传            let flag = params["flag"]            let userId = params["userId"]                        multipartFormData.append((flag?.data(using: String.Encoding.utf8)!)!, withName: "flag")            multipartFormData.append( (userId?.data(using: String.Encoding.utf8)!)!, withName: "userId")                        for i in 0..

转载地址:http://fhbdx.baihongyu.com/

你可能感兴趣的文章
mac下修改mysql的密码
查看>>
Netty实现原理浅析
查看>>
手机吸费软件肆意捞金,通过代码签名证书加以防范
查看>>
C语言作业06--结构体&文件
查看>>
Notepad++ xml/json格式化
查看>>
CRUD全栈式编程概述
查看>>
spiral matrix
查看>>
前端将markdown转换成html
查看>>
[CLPR] 用于加速训练神经网络的二阶方法
查看>>
Flannel网络配置
查看>>
使用VSTO读取WORD表格中的单元格内容的问题
查看>>
CUDA学习笔记(三)
查看>>
迅速搭建简易静态服务器
查看>>
啦啦啦~
查看>>
【转】Win7双击文件夹打开新窗口
查看>>
01进程
查看>>
VUE中使用sass
查看>>
Uva 10534 波浪子序列
查看>>
XML 命名空间
查看>>
LeetCode – Refresh – Permutations II
查看>>