Как отделить тело запроса в alamofire? - PullRequest
0 голосов
/ 18 декабря 2018

Я использую YouTube Live Streaming API.
Требуются заголовки http, параметры, тело запроса.

Параметр - обязательный формат строки запроса.
Тело запроса - обязательный формат json.

В Alamofire есть только параметры, заголовок.
Как отделить тело запроса от параметров ??

До сих пор я использую вот так.

let params: [String: Any] = [
    "part": "snippet, status", // part is parameter
    "snippet": ["title": "hhzz", // snippet is request body
                "scheduledStartTime": "2018-12-18T13:00:0Z"],
    "status": ["privacyStatus": "public"] // status is request body
]

Alamofire.request(url, method: .post, parameters: params, encoding: URLEncoding.queryString, headers: header).responseJSON { (response) in
    if let response = response.result.value {
        print(response)
    }
}

Но, этот запрос всегда терпит неудачу.Поскольку сервер распознает тело запроса = nil.
Методы запроса Alamofire no не имеют тела запроса.
Где можно ввести тело запроса?
или Как отделить тело запроса ??

1 Ответ

0 голосов
/ 18 декабря 2018

Из документации Youtube требуется тело json, поэтому вам необходимо использовать кодировку JSON и добавить параметры URL в URL запроса.

let url = "https://www.googleapis.com/youtube/v3/liveBroadcasts?part=snippet,status"
Alamofire.request(url, method: .post, parameters: params, encoding: JSONEncoding.default, headers: header).responseJSON { (response) in
    if let response = response.result.value {
        print(response)
    }
}
...