gpt4 book ai didi

swift - Alamofire 的格式化字典

转载 作者:搜寻专家 更新时间:2023-11-01 07:18:28 25 4
gpt4 key购买 nike

这个问题更多的是关于 Swift & 和字典而不是 Alamofire 本身

我需要通过网络服务创建记录,我使用的是 Alamofire。出于某种原因,我的报价比预期的要多,网络服务拒绝了我的电话

如果我通过 curl 模拟调用,web 服务接收:

{"records"=>[{"id"=>"2", "node"=>{"children"=>[{"specifications"=>"Specs", "description"=>"Fee", "line_item"=>{"sale_price"=>123.4, 
"amount"=>1, "vat_percentage"=>21, "unit_price"=>99.5}}]}}], "action"=>"create", "collection"=>"invoices", "controller"=>"api/v2/api"}

如果我在我的应用程序中通过 Alamofire 进行调用,网络服务会收到:

{"records"=>[{"id"=>"2", "node"=>{"children"=>[{"specifications"=>"Specs", "description"=>"Fee", "line_item"=>{"sale_price"=>"123.4", 
"amount"=>"1", "vat_percentage"=>"21", "unit_price"=>"99.5"}}]}}], "action"=>"create", "collection"=>"invoices", "controller"=>"api/v2/api"}

如您所见,每个数字都用引号括起来(例如,“99.5”与 99.5,导致网络服务翻转。

我调整了一下,但找不到如何在 Swift 中解决这个问题。我为 Alamofire 创建负载的方式是:

let jsonObject: [String: AnyObject] = [
"id": id as AnyObject,
"node" : [
"children": [[
"description" : lineDescription,
"specifications" : lineSpecifications,
"line_item" : [
"amount" : 1,
"unit_price" : feePrice,
"sale_price" : feePrice,
"vat_percentage" : 21

]
]] as AnyObject
] as AnyObject
]
let parameters = ["records" : [jsonObject as AnyObject]]

Alamofire.request(urlPath, method: .post, parameters: parameters, headers: ["X-API-KEY": apiKey, "Content-type application":"json", "Accept application" : "json"]).responseString() {

response in switch (response.result) {

blah blah
}

其中变量 lineDescription 和 lineSpecifications 是字符串,feePrice 是 Double

最佳答案

如评论中所述,我需要为请求添加编码。要关闭问题并显示格式更友好的解决方案,请使用此答案:

Alamofire.request(urlPath, method: .post, parameters: parameters, headers: ["X-API-KEY": apiKey, "Content-type application":"json", "Accept application" : "json"]).responseString() {

应该是:

Alamofire.request(urlPath, method: .post, parameters: parameters,  encoding: JSONEncoding.default, headers: ["X-API-KEY": apiKey, "Content-type application":"json", "Accept application" : "json"]).responseString() {

关于swift - Alamofire 的格式化字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40489642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com