Почтовый словарь от Swift до PHP

Как словарь, сгенерированный в Swift, выставляется как параметр в URL-адресе PHP?

В частности, задача состоит в обновлении многих полей в размещенной базе данных. Вместо того, чтобы определять новые значения для каждого поля в качестве отдельного параметра, я хочу передать словарь, где ключи являются именами полей, а значения – это новые значения. Эти данные уже существуют как Dictionary<String, String> в Swift – как его можно привязать к php url в следующем формате:

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

Где:

recId = идентификатор записи, который обновляется (в качестве примера передачи отдельной переменной вместе со словарем)

itemDict = словарь, сгенерированный в Swift

Вот текущий код: … который возвращает ошибку, показывающую url как "nil"

 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. Преобразуйте словарь в строку JSON.
  2. Если вы отправляете эти данные в виде строки запроса; вам придется URL-кодировать его
  3. Наконец, вы можете отправить его на PHP; где он достигнет единственного параметра в $ _GET. Там вам понадобится json_decode PHP, чтобы получить от него связанный массив.