swift 三方库 Alamofire&&Kingfisher

2020-03-05  本文已影响0人  茗记西岭雪

Alamofire  网络库,类似于 oc 里面都 AFNetworking 

导入就不说了很简单 说一下封装 , get 和 post 直接调用就可以

class NetworkTools: NSObject {

    classfuncgetHttp(url:String,

    params: [String:Any]?,

    success:@escaping FSResponseSuccess,

    error:@escapingFSResponseFail) {

        AF.request(url,

                        method: .get,

                        parameters: params,

                        encoding:URLEncoding.default

                        ).responseJSON{ (response)in

                            switchresponse.result{

                            case.success(letjson):

                                success((jsonasAnyObject?)! )

                            case.failure:

                                letstatusCode = response.response?.statusCode

                                error("\(statusCode ??0)请求失败")

                                debugPrint(response.responseasAny)

                            }

        }

    }

    classfuncpostHttp(url:String,

       params: [String:Any]?,

       success:@escapingFSResponseSuccess,

       error:@escapingFSResponseFail) {

           AF.request(url,

                      method: .post,

                           parameters: params,

                           encoding:URLEncoding.default

                           ).responseJSON{ (response)in

                               switchresponse.result{

                               case.success(letjson):

                                success(jsonasAnyObject) 

                               case.failure:

                                   letstatusCode = response.response?.statusCode

                                   error("\(statusCode ??0)请求失败")

                                   debugPrint(response.responseasAny)

                               }

           }

       }

     publicfuncgetWith(url:String,

                        params: [String:Any]?,

                        success:@escapingFSResponseSuccess,

                        error:@escapingFSResponseFail) {

        requestWith(url: url,

                    httpMethod:0,

                    params: params,

                    success: success,

                    error: error)

    }

    publicfuncpostWith(url:String,

                         params: [String:Any]?,

                         success:@escapingFSResponseSuccess,

                         error:@escapingFSResponseFail) {

        requestWith(url: url,

                    httpMethod:1,

                    params: dic,

                    success: success,

                    error: error)

    }

    publicfuncrequestWith(url:String,

                            httpMethod:Int32,

                            params: [String:Any]?,

                            success:@escapingFSResponseSuccess,

                            error:@escapingFSResponseFail) {

        //get

        ifhttpMethod==0{

            manageGet(url: url, params: params, success: success, error: error)

        }else{

            managePost(url: url, params: params!, success: success, error: error)

        }

    }

    privatefuncmanagePost(url:String,

                            params: [String:Any],

                            success:@escapingFSResponseSuccess,

                            error:@escapingFSResponseFail) {

        AF.request(url,

                        method: .post,

                        parameters: params,

                        encoding:URLEncoding.default).responseJSON{ (response)in

                            switchresponse.result{

                            case.success(letjson):

                                success((jsonasAnyObject?)! )

                            case.failure:

                                letstatusCode = response.response?.statusCode

                                error("\(statusCode ??0)请求失败")

                                debugPrint(response.responseasAny)

                            }

        }

    }

    privatefuncmanageGet(url:String,

                           params: [String:Any]?,

                           success:@escapingFSResponseSuccess,

                           error:@escapingFSResponseFail) {

        AF.request(url,

                        method: .get,

                        parameters: params,

                        encoding:URLEncoding.default).responseJSON{ (response)in

                            switchresponse.result{

                            case.success(letjson):

                                success((jsonasAnyObject?)! )

                            case.failure:

                                letstatusCode = response.response?.statusCode

                                error("\(statusCode ??0)请求失败")

                                debugPrint(response.responseasAny)

                            }

        }

    }

}

Kingfisher  图片库

使用简单             imageView.kf.setImage(

                with:URL(string: anchor.vertical_src),

                placeholder:nil

                )

上一篇下一篇

猜你喜欢

热点阅读