Kürzlich fand ich heraus, dass, wenn ich eine Post-Daten senden, die ein "+" Zeichen enthalten, wird das "+" Leerzeichen werden. zum Beispiel {Gerichtname: Fisch + Chips}. Diese Cause-Server-Seite kann keine Daten lesen. Also versuche ich folgende, ich benutze:Swift Post Anfrage Codierung plus Zeichen werden Leerraum
request.setValue ("application/json; charset = utf-8", forHTTPHeaderField: "Content-Type")
zu kodieren, meine Anfrage auf UTF-8 Diese Zeile führt jedoch dazu, dass meine Postdaten leer sind. Ich habe keine Ahnung, warum das passiert. Oder gibt es eine bessere Lösung, um "+" Zeichen während der Post-Methode zu behalten?
func PostMethod(url:NSURL,Data:String) {
let request = NSMutableURLRequest(URL: url)
let session = NSURLSession.sharedSession()
let submitContent = Data
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
request.HTTPMethod = "POST"
request.HTTPBody = submitContent.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
//print("——request——")
//print(request)
let task = session.dataTaskWithRequest(request){
data, response, error in
if data != nil{
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding) as! String
print(responseString)
let jsonall = self.commonControl.StringToJson(responseString)
if let dataFromString = jsonall["body"].stringValue.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) {
let json = JSON(data: dataFromString)
}}}}