在 URL 请求中提交 Decimal/Float Swift

Submit Decimal/Float in URL Request with Swift

如何使用 swift 在 URL POST 请求中传递诸如“1.5”的值?

例如:

let number = "1.5"
let numberValue = number.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)

let server:String = "www.someserver.com"
let phpFile:String = "/php/SomePHPScript.php"
let baseURL = NSURL(string: "http://\(server)\(phpFile)")           
let url = NSURL(string: "?value=\(numberValue)", relativeToURL: baseURL) 
let cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData
var request = NSMutableURLRequest(URL: url!, cachePolicy: cachePolicy, timeoutInterval: 10.0)
request.HTTPMethod = "POST"

var dataString = ""
let requestBodyData = (dataString as NSString).dataUsingEncoding(NSUTF8StringEncoding)
request.HTTPBody = requestBodyData
// etc...

这编译正常,但在执行时崩溃。似乎将其转换为 JSON 可以解决问题,但是有更清洁的方法吗?

编辑

stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) returns 可选。它需要打开。

stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) returns 可选。它需要被打开。