我正在向网站发送一个简单的发布请求,该网站发回如下所示的 JSON:
{
Account = "blah blah";
Password = "blah blah";
}
这是请求。
@IBAction func submitButtonClicked(_ sender: Any){
AF.request("https://companywebsite.com", method: .post, parameters: parameters, encoding:JSONEncoding.default)
.responseJSON{ response in
let json = try? JSON(data: response)
}
}
我收到以下编译错误:
Cannot convert value of type 'DataResponse<Any>' to expected argument type 'Data'
我使用 Alamofire 发送请求并使用 SwiftyJSON 解析请求。我以前从未使用过 Swift 或任何一个库,所以我真的很想知道我需要做些什么来解决这个问题。
我想把账号和密码提取出来,分别存储在单独的变量中。我尝试按照其他教程进行操作,但没有成功。如果有人可以帮助我,我将不胜感激。
最佳答案
您需要 responseData
而不是 responseJSON
AF.request("https://companywebsite.com", method: .post, parameters: parameters, encoding:JSONEncoding.default)
.responseData { response in
guard let data = response.data else { return }
let json = try? JSON(data:data)
if let acc = json?["Account"].string {
print(acc)
}
if let pass = json?["Password"].string {
print(pass)
}
}
其他变体
Alamofire.request("https://companywebsite.com", method: .post, parameters: [:], encoding:JSONEncoding.default)
.responseJSON { response in
let json = try? JSON(response.result.value!)
}
关于json - 无法将类型 'DataResponse<Any>' 的值转换为预期的参数类型 'Data',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56937667/