[英]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.