Post 字典从 Swift 到 PHP
Post dictionary from Swift to PHP
如何将在 Swift 中生成的字典作为参数发布到 PHP URL 中?
具体而言,任务是更新托管数据库上的许多字段。我没有将每个字段的新值定义为单独的参数,而是希望传递一个字典,其中键是字段名称,值是新值。此数据已作为 Swift 中的 Dictionary<String, String>
存在 - 如何将其附加到 php url 中,格式如下:
"http://server/directory/targetScript.php/?recordId=\(recId)&newFieldArray=\(itemDict)"
其中:
recId
= 正在更新的记录 ID(作为与字典一起传递单独变量的示例)
itemDict
=Swift
中生成的字典
这是当前代码: ...其中 returns 错误显示 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 来传递值。
- 转换Dictionary to JSON String.
- 如果您将此数据作为查询字符串发送;你必须 URL encode it
- 终于可以发到PHP了;它将作为单个参数到达 $_GET 中的位置。
在那里你需要 PHP 的 json_decode 来从它获取关联的数组。
如何将在 Swift 中生成的字典作为参数发布到 PHP URL 中?
具体而言,任务是更新托管数据库上的许多字段。我没有将每个字段的新值定义为单独的参数,而是希望传递一个字典,其中键是字段名称,值是新值。此数据已作为 Swift 中的 Dictionary<String, String>
存在 - 如何将其附加到 php url 中,格式如下:
"http://server/directory/targetScript.php/?recordId=\(recId)&newFieldArray=\(itemDict)"
其中:
recId
= 正在更新的记录 ID(作为与字典一起传递单独变量的示例)
itemDict
=Swift
这是当前代码: ...其中 returns 错误显示 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 来传递值。
- 转换Dictionary to JSON String.
- 如果您将此数据作为查询字符串发送;你必须 URL encode it
- 终于可以发到PHP了;它将作为单个参数到达 $_GET 中的位置。 在那里你需要 PHP 的 json_decode 来从它获取关联的数组。