Xcode : Alamofire get String response

标签 xcode alamofire

我是 IOS 开发新手,目前正在学习 Alamofire 网络

我正在尝试登录...
只要凭据正确,.php 文件就会返回 json我可以从 Alamofire 得到那个 json通过以下代码:

    Alamofire.request(loginUrl, method: .post, parameters: parameters).responseJSON { (response:DataResponse<Any>) in
        print("String:\(response.result.value)")
        switch(response.result) {
        case .success(_):
            if let data = response.result.value{
                print(self.loginUrl)
                print(data)
            }

        case .failure(_):

            print(self.loginUrl)
            print("failed")
            print("Error message:\(response.result.error)")
            break

        }
    }

现在......当凭据错误时,.php 不会提供 json..而是返回一个字符串..例如“wrong_password”或“userLocked”等......
如何通过 Alamofire 获得 String 响应?

最佳答案

如果你想要 JSON 响应使用 .responseJSON , 如果你想要 字符串 响应使用 .responseString .如果你想要两者都使用。希望这有帮助。

Alamofire.request(loginUrl, method: .post, parameters: parameters)
     .responseJSON { response in
       print("JSON:\(response.result.value)")
       switch(response.result) {
       case .success(_):
          if let data = response.result.value{
             print(data)
           }
            
        case .failure(_):
            
            print("Error message:\(response.result.error)")
            break
            
        }
    }
     .responseString { response in
       print("String:\(response.result.value)")
       switch(response.result) {
       case .success(_):
          if let data = response.result.value{
             print(data)
            }
                
       case .failure(_):
           print("Error message:\(response.result.error)")
           break     
        }
    }
更新:Swift 5,Alamofire 5
    AF.request(urlString, method: .post, parameters: parameters)
        .responseJSON { response in
            print("response: \(response)")
            switch response.result {
            case .success(let value):
                print("value**: \(value)")
                
            case .failure(let error):
                print(error)
            }
    }
    .responseString { response in
        print("response: \(response)")
        switch response.result {
        case .success(let value):
            print("value**: \(value)")
            
        case .failure(let error):
            print(error)
        }
    }

关于Xcode : Alamofire get String response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44095161/

相关文章:

ios - 应用程序在 iPhone 上打开之前崩溃

ios - Xcode 将旧数据文件放在包中,而不是它的新版本

xcode - 无法在 IB 中更改 View 的大小

ios - 有什么方法可以在 Storyboard 中添加缩写/速记/常量来代替字符串?

file-upload - 谷歌驱动器 + Alamofire : Uploading a file with properties

ios - 使用外部源的 subview 中的视频播放器不缩放

json - AlamofireObjectMapper 返回空 jsonarray

swift3 - RxAlamofire发布多部分数据

ios - 解析不同类型的 json 响应

swift - Alamofire 请求问题