我正在尝试使用 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)似乎工作正常
最佳答案
好的,这是我看到的几件事。
当您向服务器发送 POST 时,URL 必须指向网络服务或某种网络应用程序。在这里,您似乎正在尝试 POST 到资源文件。静态资源文件不会自动更新。
您没有指定编码,所以您没有发布 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/