我的 Swift 代码中有此请求
var request = URLRequest(url: URL(string: "http://www.website.com/Application/profile.php")!)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let postString = "get_comments=\(PostId)"
request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
print("error=\(error!)")
return
}
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 {
print("statusCode should be 200, but is \(httpStatus.statusCode)")
}
do {
let jsonData = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! [Any]
print(jsonData)
} catch {
print(error)
}
}
task.resume()
在 profile.php 中我有这段代码
if (isset($_POST['get_comments'])) {
$PostId = $_POST['get_comments'];
$response=["For errors",0,"Username"];
echo json_decode($response);
}
但是此代码返回以下错误
Error Domain=NSCocoaErrorDomain Code=3840 "No value." UserInfo={NSDebugDescription=No value.}
当我打印data
时,它会打印“0字节”。我尝试按照其他答案建议添加
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
,但它没有改变任何东西
最佳答案
PostId
是一个可选值,我忘记添加 !
。请求看起来像
get_comments="Optional("12")"
这是错误的。
关于json - Swift HTTP Json 请求返回 Error Domain=NSCocoaErrorDomain Code=3840 "No value."UserInfo={NSDebugDescription=No value.},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45586900/