簡體   English   中英

在swift3中的json中使用日期編碼格式時出錯

[英]Error in encoding date format to use it in json in swift3

let dateFormatter1 : DateFormatter = DateFormatter()
dateFormatter1.dateFormat = "dd/MMM/yyyy HH:mm:ss"

let date1 = Date()
let myString1 = dateFormatter1.string(from: date1)

let data1 = myString1.data(using: .utf8)

self.dateString1 = String(data: data1!, encoding: .utf8)!

func postYumms() {
    let delegate = UIApplication.shared.delegate as? AppDelegate

    if let context = delegate?.persistentContainer.viewContext{
       let person = NSEntityDescription.insertNewObject(forEntityName: "Mydata", into: context) as! Mydata
       let newString = self.timeString.replacingOccurrences(of: "", with: "/")
       let dateescapedString = self.dateString.addingPercentEncoding(withAllowedCharacters:.urlHostAllowed)
       let timeescapedString = newString.addingPercentEncoding(withAllowedCharacters:.urlQueryAllowed)
       print(timeescapedString!)

       let joinString = dateescapedString! + "+" + newString

       let parameters = "Post_id=\(self.ID)" + "&Post_type=\(self.PTYPE)" + "&Created_by=\(self.UID)" + "&Created_on=\(self.dateString1)"
       print(parameters)

       let url = "http://shiftu.org/api/zTimeline/post_like?"

       let upara = url + parameters

       print(upara)

       Alamofire.request(upara, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { response in
           switch(response.result) {
           case .success(_):
               if response.result.value != nil{
                   print(response.result.value!)
               }
               break

           case .failure(_):
               print(response.result.error!)
               break
           }
    }
}

它顯示錯誤

invalidURL("http://shiftu.org/api/zTimeline/post_like?Post_id=8172&Post_type=1&Created_by=3234&Created_on=18/Jul/2017 12:14:02"

請,有人幫我

問題在於,您使用日期中帶有空格的字符串表示作為URL查詢參數,而沒有對字符串進行URL編碼。 您實際上是在進行編碼,但是不要在任何地方使用編碼后的字符串。

只需更改此行即可解決您的問題:

let parameters = "Post_id=\\(self.ID)" + "&Post_type=\\(self.PTYPE)" + "&Created_by=\\(self.UID)" + "&Created_on=\\(joinString)"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM