Swift iOS Alamofire5.0 简单使用

例:

Post:

struct UserIfo: Encodable {

    let uid:String

    let oauth_token_secret: String

    let oauth_token: String

}

首先定义一个结构体参数名与服务器参数名一样

继承于Encodable便于转json

开始请求

let  params =Logins.init(login: email, password: psw)

    letrequset =  AF.request("xxxxx.login",method: .post,parameters: params,encoder:JSONParameterEncoder.default,headers: ["Accept":"application/json"])

    requset.responseJSON{ (dataResponse)in

        print("访问的Url地址 = " + baseUrl + loginUrl)

        ifdataResponse.error==nil{

            ///请求成功

            letresultDict =  dataResponse.valueas! [String:Any]

            varmsg  = resultDict["msg"]

            ifmsg==nil{

                msg = resultDict["message"]

            }

            letstatus = resultDict["status"]as!NSNumber

            ifstatus.intValue==1  {

                UserDefaults.standard.set(params.login, forKey:"email")

                UserDefaults.standard.set(params.password, forKey:"password")

                UserDefaults.standard.synchronize()

                userModel.oauth_token= resultDict["oauth_token"]as!String

                userModel.oauth_token_secret= resultDict["oauth_token_secret"]as!String

                userModel.uid= resultDict["uid"]as!NSNumber

                loginBool=true

                blocks(true,"")


            }else{

                print(msgasAny)

                LxhToast.showSVPHUDMessage((msgas!String))

                blocks(false,msgas!String)

            }

            print(dataResponse.valueasAny)


        }else{

            ////请求失败

            print(dataResponse.error?.errorDescriptionasAny)

        }

    }



Get:  

注意:get方法,参数可以放parameters:里  但是不需要写上encoder:JSONParameterEncoder

letrequset =  AF.request("xxxx.get",method:.get,parameters:["email":params.email],headers: ["Accept":"application/json"])

    requset.responseJSON{ (dataResponse)in

        print("访问的Url地址 = "+urlStr)

        ifdataResponse.error==nil{

            ///请求成功

            letresultDict =  dataResponse.valueas! [String:Any]

            varmsg  = resultDict["msg"]

            ifmsg==nil{

                msg = resultDict["message"]

            }

            letstatus = resultDict["status"]as!NSNumber

            ifstatus.intValue==1  {

                UserDefaults.standard.set(params.email, forKey:"email")

                UserDefaults.standard.set(params.password, forKey:"password")

                UserDefaults.standard.set(params.picurl, forKey:"picurl")

                UserDefaults.standard.synchronize()

                blocks(true,"")


            }else{

                LxhToast.showSVPHUDMessage((msgas!String))

                blocks(false,msgas!String)

            }

            print(dataResponse.valueasAny)


        }else{

            ////请求失败

            print(dataResponse.error?.errorDescriptionasAny)

        }

    }



最后:

AF.request()

requset里面可以随便增加或者减少参数  

推荐阅读更多精彩内容