json - Swift HTTP Json 请求返回 Error Domain=NSCocoaErrorDomain Code=3840 "No value."UserInfo={NSDebugDescription=No value.}

标签 json swift

我的 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/

相关文章:

json - 如何获取 JMESPath 中的对象键列表

jquery - 我认为我很愚蠢......但我无法正确获得 JSON 输出

swift - 在 Swift 中,如何创建 String 的后代?我在尝试这样做时收到错误 "Inheritance from non-protocol, non-class type ' String'"

arrays - 无法附加到数组扩展中

PHP JSON 编码使用逗号和括号

jquery - 获取Json嵌套数组元素

java - 想要将多个 JSON 对象存储到 jsonArray 并将结果作为单个字符串获取

constructor - Swift:使用指定的初始化程序覆盖便利

ios - 如何在 Xcode 中使用 AVFoundation 在 11 个专业相机之间切换

ios - 界面测试失败 : Failed to update to requested orientation