Alamofire4 PUT、POSTbody传参以及实现Oauth2认证

       Alamofire是原AFNetworking团队针对Swift语言封装的网络请求库,相较于AF基本不存在内存泄漏的问题。最新版是Alamofire5最低支持系统为iOS10,具体可参考文章:Alamofire 5 的使用 - 基本用法。针对AF框架存在的内存泄漏解决方案,博客园有很多文章,尤其是文件、图片上传导致的内存泄漏。具体可参考:[AFHTTPSessionManager manager]内存泄漏解决

     下面就将Alamofire 在PUT、POST请求下body 传值以及图片、文件上传的调用简单二次封装列出如下,供参考和学习使用:

  • Alamofire PUT/POST方式请求,body传参实例:
/**!
     * post 接口请求
     * @para strUrl   String 请求地址
     * @para body     Data? 请求参数
     * @para successBack  成功回调
     * @para failureBack  失败回调
     */
    func postRequestWithBodyFor(strUrl:String,
                                withBody body:Data?,
                                AndSuccessBack successBack:@escaping SuccessBlock,
                                AndFailureBack failureBack:@escaping FailureBlock,
                                WithisLoading isLoading:Bool = true) {

        if body != nil {
             print("请求地址:\(strUrl),参数:\(NSString.init(data: body!, encoding: String.Encoding.utf8.rawValue) ?? "暂无参数")")
        }
        else{
            print("请求地址:\(strUrl),暂无参数")
        }

        if isLoading == true {
            SVProgressHUD.showLoading()
        }
        
        var request = URLRequest.init(url: URL.init(string: strUrl)!)
        request.httpBody = body
        request.httpMethod = "POST"
        request.timeoutInterval = K_APP_REQUEST_TIME_OUT
        request.setValue("application/json", forHTTPHeaderField: "Accept")
        request.setValue("application/json;charset=UTF-8", forHTTPHeaderField: "Content-Type")
        
        Alamofire.request(request)
                 .validate()
                 .validate(contentType: K_APP_ACCEPTABLE_CONTENTTYPES)
                 .responseJSON { response in
                
                    if isLoading == true {
                         SVProgressHUD.dismissLoading()
                      }

                      var msg:String? = response.error?.localizedDescription ?? "请求数据不存在"
                      self.errorHandle(Error: response.error as NSError?,
                                  statusCode: response.response?.statusCode,
                                 andErrormsg: &msg)
                      
                      print("请求结果ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追夢秋陽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值