Xcode:Alamofire获得String响应

时间:2017-05-21 09:19:54

标签: 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 ..而且它会返回一个字符串..例如&#34; wrong_password&#34;或&#34; userLocked&#34;等等...... 我如何通过Alamofire获得String响应?

2 个答案:

答案 0 :(得分:20)

如果您希望 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     
        }
    }

答案 1 :(得分:1)

我通过以下方式解决此问题:

print(response.request)  // original URL request
print(response.response) // URL response
print(response.data)     // server data
print(response.result)   // result of response serialization

来源: https://github.com/Alamofire/Alamofire/issues/818