Я пытаюсь удалить родительское повторяющееся событие (поэтому родитель и все экземпляры будут удалены).
При использовании URLSession
с созданным вручную URLRequest запрос возвращает 412 код ошибки.Я не предоставляю заголовок If-Match, и в событии не было никаких изменений от создания до его удаления.
Выполнение запроса с почтальоном или Paw, запрос успешно выполняется с кодом состояния 204 который является желаемым результатом.
Я строю запрос так:
func delete(eventWithId eventId: String, token: String) {
let sessionConfig = URLSessionConfiguration.default
let session = URLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil)
guard var URL = URL(string: "https://www.googleapis.com/calendar/v3/calendars/primary/events/\(eventId)") else {return}
var request = URLRequest(url: URL)
request.httpMethod = "DELETE"
request.addValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let task = session.dataTask(with: request, completionHandler: { (data: Data?, response: URLResponse?, error: Error?) -> Void in
if (error == nil) {
let statusCode = (response as! HTTPURLResponse).statusCode // <--- returning status code 412
}
else {
print("URL Session Task Failed: %@", error!.localizedDescription);
}
})
task.resume()
session.finishTasksAndInvalidate()
}
Тело ответа:
{
"error":{
"errors":[
{
"domain":"global",
"reason":"conditionNotMet",
"message":"Precondition Failed",
"locationType":"header",
"location":"If-Match"
}
],
"code":412,
"message":"Precondition Failed"
}
}
Странная вещь.Я делаю тот же самый запрос DELETE, используя Postman и PAW, и он успешно возвращается, возвращая код состояния 204. Также мой запрос на удаление, кажется, работает нормально в отдельных событиях или повторяющихся событиях.
Любой, кто имеет опыт работы сзначение?