這個問題更多的是斯威夫特&和字典比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,然後嘗試發送它。 –