Post从Swift到PHP的字典

如何在Swift中生成一个字典作为参数发布到PHP URL中?

具体来说,任务是更新托pipe数据库上的许多字段。 而不是为每个字段定义新的值作为一个单独的参数,我期待传递一个字典,其中的键是字段名称和值是新的值。 这个数据在Swift中已经作为一个Dictionary<String, String>存在了Dictionary<String, String>怎么能用下面的格式join到php url中:

 "http://server/directory/targetScript.php/?recordId=\(recId)&newFieldArray=\(itemDict)" 

哪里:

recId =正在更新的logging标识(作为与字典一起传递单独variables的示例)

itemDict =在Swift中生成的字典

这是目前的代码: …它返回一个错误显示url为“零”

 class func updateItemInfo ( recordId:String, updatedDict:Dictionary<String, String> ) -> Void { //recordId = the FileMaker recordId of the item being updated //updatedDict = the primaryKey of the current item //direct to php file location let server:String = "myServer.com" let phpFile:String = "/php/UpdateRecord.php" let baseURL = NSURL(string: "http://\(server)\(phpFile)") let url = NSURL(string: "?recordId=\(recordId)&newData=\(updatedDict)", relativeToURL: baseURL) let cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData var request = NSMutableURLRequest(URL: url!, cachePolicy: cachePolicy, timeoutInterval: 20.0) request.HTTPMethod = "POST" // set data var dataString = "" let requestBodyData = (dataString as NSString).dataUsingEncoding(NSUTF8StringEncoding) request.HTTPBody = requestBodyData var response: NSURLResponse? = nil var error: NSError? = nil let reply: NSData! = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:&error) let results = NSString(data:reply!, encoding:NSUTF8StringEncoding) println(results) } 

为什么不使用JSON传递值。

  1. 将字典转换为JSONstring。
  2. 如果您将这些数据作为查询string发送, 你将不得不对URL进行编码
  3. 最后你可以把它发送到PHP; 它将作为$ _GET中的单个参数到达。 在那里,你需要PHP的json_decode来获取关联的数组。