json - JSON POST 请求中的参数在 Swift 中被忽略了吗?

标签 json swift

我正在尝试从 URL 获取一些数据,这需要我发布 JSON 请求。它的工作原理是我得到了一些数据;只是不是我预期的数据。然后我使用 jsontest.com 来测试我的代码:

let url = NSURL(string: "http://echo.jsontest.com/")
let request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "POST"

do {
    let params = ["echo": "abc"] as Dictionary<String, String>

    //... Just make sure that 'params' is a valid JSON object
    assert(NSJSONSerialization.isValidJSONObject(params))

    request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(params, options: NSJSONWritingOptions.PrettyPrinted)
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    request.addValue("application/json", forHTTPHeaderField: "Accept")

} catch {
    print("Error")
}

let session = NSURLSession.sharedSession()
dataTask = session.dataTaskWithRequest(request, completionHandler: {
    (data: NSData?, response: NSURLResponse?, error: NSError?) in

    if let httpResponse = response as? NSHTTPURLResponse where httpResponse.statusCode == 200,
        let data = data {

            let encodedData = NSString(data:data, encoding:NSUTF8StringEncoding)
            print("encodedData = \(encodedData!)")

    } else {
        print("Error")
    }
})

dataTask?.resume()

当我运行它时,我看到来自 jsontest.com 的以下输出:

encodedData = {"": ""}

我期望的地方

encodedData = {"echo": "abc"}

所以,我是不是没有正确理解 jsontest.com 是这样工作的,还是我做错了什么? (显然,我在使用其他 JSON 服务时遇到了类似的问题。)欢迎提出任何意见。

最佳答案

echo.jsontest.com 不适用于请求正文,但适用于请求 url,请参阅 www.jsontest.com/#echo了解详情。

关于json - JSON POST 请求中的参数在 Swift 中被忽略了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32904625/

相关文章:

python - jsonpickle/json函数输入utf-8,输出unicode?

swift - 如何让 Bond 在 OS X Swift 应用程序中工作?

json - SwiftyJSON 循环与 swift 1.2

java - 如何在 JavaScript 中访问 JSON 数组的元素?

javascript - 为什么返回原始 JSON 对象而不是我的部分 View ?

json - 如何编写解析此JSON的Dart模型类?

c# - 如何使用 C# 将我的模型放入我的 View 中?

objective-c - 未解析的标识符 - Swift 中的 Objective-C Pod

SwiftUI:NavigationButton 初始值设定项给出错误

swift - 如何使用 NSVisualEffectView 将窗口与背景混合