【发布时间】:2016-04-26 03:55:00
【问题描述】:
最近我发现当我发送包含“+”号的帖子数据时,“+”会变成空白。例如 { 菜名:鱼 + 薯条 }。这导致服务器端无法读取数据。所以我尝试以下,我使用:
request.setValue("application/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)
}}}}
【问题讨论】: