将 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 是否一个坏主意

前端发送数据到后端

axios将数据从前端传到后端是对象还是数组

Spring Boot 前端请求参数自动映射到枚举,后端响应JSON数据自动解析枚举

如何使用 Angular 发送带有对象参数的 fetch api 请求?

通过API注册后Keycloak自动登录