我是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响应?
答案 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