Загрузка данных


import com.google.gson.Gson
import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.time.LocalDate
import java.time.format.DateTimeFormatter

data class RevokePassRequest(
    val revokedAt: String
)

fun main() {
    val passId = 5
    val url = "https://nto-backend.mephi.ru/api/passes/$passId/revoke"

    // Формируем текущую дату со временем ровно 1 час ночи (01:00:00)
    val revokedAt = LocalDate.now()
        .atTime(1, 0, 0)
        .format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"))

    // Сериализация тела запроса с помощью Gson
    val gson = Gson()
    val requestJson = gson.toJson(RevokePassRequest(revokedAt))

    // Создание HTTP-клиента и PATCH-запроса через java.net.http
    val client = HttpClient.newHttpClient()
    val request = HttpRequest.newBuilder()
        .uri(URI.create(url))
        .header("Content-Type", "application/json")
        .method("PATCH", HttpRequest.BodyPublishers.ofString(requestJson))
        .build()

    // Отправка запроса и получение ответа
    val response = client.send(request, HttpResponse.BodyHandlers.ofString())

    // Вывод сырого ответа сервера
    println(response.body())
}