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里面可以随便增加或者减少参数