/ / Fehler beim Codieren des Datumsformats zur Verwendung in json in swift3 - json, swift3

Fehler beim Codieren des Datumsformats zur Verwendung 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
}
}
}

es zeigt Fehler wie

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"

Bitte, jemand hilft mir

Antworten:

0 für die Antwort № 1

Das Problem ist, dass Sie eine Zeichenfolge verwendenDarstellung eines Datums mit Leerzeichen als URL-Abfrageparameter ohne URL-Codierung der Zeichenfolge. Sie führen die Codierung tatsächlich durch, verwenden die codierten Zeichenfolgen dann jedoch nirgendwo.

Nur diese Zeile zu ändern sollte Ihr Problem lösen:

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