json - 当我使用 swift 发布 json 时如何解析 http 代码 412 和 200?

标签 json swift dictionary alamofire

我正在尝试使用 swift (Alamofire) 将一个非常简单的字典发送到本地主机中的 json 文件 这是我所做的:

let parameters: Parameters = ["name" : "Danial"]


        Alamofire.request("http://localhost/testing.json", method: HTTPMethod.post, parameters: parameters).response { result in
            if result.response?.statusCode != nil {
                 if let status =  (result.response?.statusCode)! as? Int {

                    print("status : \(status)")
                }
            }

        }

在我的 testing.json 中,我有以下内容:

{  
   "x":"y"
}

我很少得到 http 状态 412(经常)和 200(在 json 文件中没有出现新的 json)。我对这个网络东西很陌生。因此,请不要攻击我的问题,好像我必须知道这个简单的事情一样。这已经花了我 2 天的时间来解决,但我在这里:| 顺便说一句,连接应该没有错误,因为我的 get 协议(protocol)似乎工作正常

最佳答案

好的,这是我看到的几件事。

  1. 当您向服务器发送 POST 时,URL 必须指向网络服务或某种网络应用程序。在这里,您似乎正在尝试 POST 到资源文件。静态资源文件不会自动更新。

  2. 您没有指定编码,所以您没有发布 JSON (application/json),您发布了 Form URL Encoded (application/x-www-form-urlencoded)。您发送的不是 { "name": "Danial"},而是 name=Danial

需要设置编码为JSON。

let parameters: Parameters = ["name" : "Danial"]

Alamofire.request("http://localhost/testing.json",
                  method: HTTPMethod.post,
                  parameters: parameters,
                  encoding: JSONEncoding.default).response { result in
    if result.response?.statusCode != nil {
        if let status =  (result.response?.statusCode)! as? Int {
            print("status : \(status)")
        }
    }
}

关于json - 当我使用 swift 发布 json 时如何解析 http 代码 412 和 200?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46561946/

相关文章:

javascript - 如何访问嵌套文档中的某个字段

将 NSData 复制到 UnsafeMutablePointer<Void>

ios - 绝对应用 CGAffineTransform* 到 UIView

python - 处理字典的字典

json - 我在使用arm模板部署存储帐户时遇到问题

java - 用于第 3 方库的自定义 jackson 反序列化器

python - 如何从 JSON 响应中提取单个值?

ios - (iOS) 我如何对 UI 元素的翻译进行动画处理,例如两个 View Controller 之间转换中的标签和图像?

Python 递增列表中保存的字典值条目

java - 使用比较器排序映射导致语法错误