这个问题更多的是斯威夫特&和字典比Alamofire本身格式字典Alamofire
我需要通过一个Web服务创建一个记录,而我使用Alamofire。出于某种原因,我比期望太多的报价与web服务拒绝我的电话
如果我通过卷曲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调用我的应用程序中, 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"}
正如你可以看到每个数字都有自己的报价缠(例如,“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是双
请将而试图以执行web服务,你所得到的错误消息。 –
错误消息是:此方法不适用于此集合。这不是真的有用。因此,我在webservice的生产日志(ssh test @ site tail -f shared/log/production.log)上做了一个尾巴,在那里我可以看到,使用Curl它发送的时候没有引用int/doubles和Swift/Alamofire引号 – Glenn
对不起,您需要将它们转换为NSNumber,然后尝试发送它。 –