/ / Errore nella codifica del formato della data per utilizzarlo in json in swift3 - json, swift3

Errore nella codifica del formato della data per usarlo in json in swift3 - json, 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
}
}
}

mostra un errore come

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"

per favore, qualcuno mi aiuti

risposte:

0 per risposta № 1

Il problema è che stai usando una stringarappresentazione di una data con spazi al suo interno come parametro di query URL senza URL che codifica la stringa. In realtà esegui la codifica, ma poi non usi le stringhe codificate da nessuna parte.

La semplice modifica di questa riga dovrebbe risolvere il tuo problema:

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