将 JSON 请求循环到后端(REST API)
Posted
技术标签:
【中文标题】将 JSON 请求循环到后端(REST API)【英文标题】:Loop JSON requests to backend (REST API) 【发布时间】:2020-09-04 13:18:15 【问题描述】:我正在向后端(REST API)发送请求。我的任务:如果 JSON 响应不符合要求的格式,或者返回错误,则开始请求循环 - 3 次尝试,如果这 3 次尝试失败,则退出,否则转到下一个(主页)
代码如下:
func checkUsers()
let headers: HTTPHeaders = ["Content-Type" : "application/json"]
NetworkManager.sharedInstance.manager.request("https://restapi.com/user",
method: .get,
parameters: nil,
encoding: JSONEncoding.default,
headers: headers).responseJSON (response) -> Void in
switch response.result
case .success(let value):
let response = JSON(value)
print("JSON Response: \(response)")
if response["operation"].stringValue == "loginerror"
print("Error")
self.showNotRegisteredScreen()
else
usersFIO = response["userName"].stringValue
self.didFinishLogin()
case .failure(let error):
print("fail to fecth data",error)
self.showErrorScreen()
请告诉我如何开始一个请求周期,在其中指定三个尝试
P.S.:使用 Alamofire 和 SwiftyJson pod
提前致谢!
【问题讨论】:
github.com/Alamofire/Alamofire/blob/master/Documentation/… ? 【参考方案1】:它适用于 Alamofire 5
lazy var manager: Alamofire.Session =
let configuration = URLSessionConfiguration.default
let retryPolicy = RetryPolicy(retryLimit: 3)
let interceptor = Interceptor(retriers: [retryPolicy])
let manager = Alamofire.Session(configuration: configuration, interceptor: interceptor, serverTrustManager: serverTrustManager, eventMonitors: [CertificateAuthAdapter()])
return manager
()
【讨论】:
以上是关于将 JSON 请求循环到后端(REST API)的主要内容,如果未能解决你的问题,请参考以下文章
将用户名和密码从移动/网络应用程序的每个请求发送到后端 api 是否一个坏主意
Spring Boot 前端请求参数自动映射到枚举,后端响应JSON数据自动解析枚举