2016-04-26 11 views
1

最近「+」記号を含む投稿データを送信すると、「+」が空白になります。たとえば{dish_name:fish + chips}となります。この原因のサーバー側はデータを読み取ることができません。だから私は、次の試してください、私が使用します。スワップポストリクエストエンコーディングプラス記号が空白になる

request.setValue( "アプリケーション/ JSON;のcharset = UTF-8"、forHTTPHeaderField: "Content-Typeの")

UTF-8に私の要求をコードしますしかし、この行によって私の投稿データは空になります。なぜこのようなことが起こるのか分かりません。 postメソッド中に "+"記号自体を保持するための良い解決策はありますか?

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) 
}}}} 

答えて

4

あなたの+はそのASCIIコードに変換してみてください。例:

let content = exampleString.stringByReplacingOccurrencesOfString("+", withString: "%2B", options: [], range: nil)

関連する問題