Добрый день, необходимо отправить данные CoreData с помощью POST запроса на сервер. Делаю это так:
func postCoreData() {
guard let url = URL(string: "http://jsonplaceholder.typicode.com/posts") else {return}
let parameters = [dataCoreData]
var request = URLRequest(url: url)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: []) else {
return
}
request.httpBody = httpBody
let session = URLSession.shared
session.dataTask(with: request) {(data, response, error) in
if let response = response {
print(response)
}
guard let data = data else {return}
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
print(json)
} catch {print(error)}
}.resume()
}
dateCoreData получается из следующего:
let managedContext = PersistentSave.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "LogTable")
request.returnsObjectsAsFaults = false
request.predicate = NSPredicate(format: "type_log == %@", type)
do {
let result = try managedContext.fetch(request)
for data in result as! [NSManagedObject] {
let prStr = data.value(forKey: "str") as! String
let prDate = data.value(forKey: "date_log") as! Date
let prName = data.value(forKey: "name") as Any
dataCoreData = (prStr, prDate, prName)
}
Но к сожалению при отправке в теле пишет null. Может кто то знает как это исправить или это технически невозможно?