Alamofire5为最新版本,是Swift语言开发的网络请求库,功能非常强大,支持链式语法,很优雅。
本文主要介绍了设置请求超时时间的两种方法:
相关参考资料:Alamofire 5 的使用 - 基本用法 Alamofire官网
方法一,通过自定义 requestModifier 实现
AF.request(strUrl,
method: .get,
parameters: paras,
headers: nh,
requestModifier: {
$0.timeoutInterval = UrlSetting.K_APP_REQUEST_TIME_OUT })
.validate()
.validate(contentType: UrlSetting.K_APP_ACCEPTABLE_CONTENTTYPES)
.responseJSON {
response in
var msg:String? = response.error?.localizedDescription ?? ""
print("请求结果:\(response)")
if response.error != nil {
print(msg)
}
else{
print("请求成功")
}
}
方法二,通过自定义 URLRequest 实现
var request = URLRequest.init(url: URL.init(string: strUrl.urlEncoded())!)
request.httpBody = body
request.httpMethod = "PUT"
request.timeoutInterval = UrlSetting.K_APP_REQUEST_TIME_OUT
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.setValue("application/json;charset=UTF-8", forHTTPHeaderField: "Content-Type")
if let userLoginToken: String = UserDefaults.standard.value(forKey: Key.userLoginToken) as? String {
request.setValue(userLoginToken, forHTTPHeaderField: UrlSetting.K_USER_TOKEN)
}
AF.request(request)
.validate()
.validate(contentType: UrlSetting.K_APP_ACCEPTABLE_CONTENTTYPES)
.responseJSON {
response in
var msg:String? = response.error?.localizedDescription ?? ""
print("请求结果:\(response)")
if response.error != nil {
print(msg)
}
else{
print("请求成功")
}
}
本文结束,不足之处多指正,谢谢