swift URLResponce, отображать дополнительное сообщение кода состояния - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь использовать текст Microsoft в речь Api.Я заставляю работать на почтальоне, но он дает мне ошибку кода 400 в Swift.Для меня только кода 400 недостаточно, чтобы понять, в чем дело. Существует несколько причин, по которым Api может вернуть это.например: когда данные нулевые или у меня неподдерживаемый голос в xml.Когда я делаю что-то не так, чтобы получить код ошибки 400, почтальон отображает описание ошибки 400.как это: enter image description here

Но я не могу нигде найти текст после 400 в URLResponce swift.

    request.httpBody = jsonString.data(using: String.Encoding.utf8);
    request.httpMethod = "POST";
    request.addValue("text/plain; charset=utf-8", forHTTPHeaderField: "Content-Type")
    request.addValue("no-cache", forHTTPHeaderField: "cache-control")
    request.addValue("Bearer " + TranslateViewController.microsoftToken, forHTTPHeaderField: "Authorization")
    request.addValue("audio-16khz-32kbitrate-mono-mp3", forHTTPHeaderField: "X-Microsoft-OutputFormat")

    let task = URLSession.shared.dataTask(with: request){
        (data, response, err) in
        do {
            guard let data = data else {
                throw JSONError.NoData
            }

            print(data, " | ",response, " | ",  err)

        } catch let error as JSONError {
            print(error.rawValue)
        } catch let error as NSError {
            print(error.debugDescription)
        }

    }
    task.resume();

отображение функции печати "

0 байт | Необязательно ( {URL: https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1} {Код состояния: 400, Заголовки {"Content-Length" = (0); Дата = ("Чт, 04 апреля 2019 12:03:04 GMT ");" x-msedge-ref "= (" Ссылка A: ########## Ссылка B: ######## Ссылка C:2019-04-04T12: 03: 04Z ");}}) | nil

Мне нужно знать, что это неправильно, чтобы исправить это.
Кроме того, если вы увидите, что мойЯ не рад получить точное описание кода состояния 400, поэтому я был бы рад услышать. Как я вижу, ошибки 400 вызваны передачей данных. Я чувствую, что эта строка может быть проблемой: request.httpBody = jsonString.data(using: String.Encoding.utf8);

это данные "

var jsonString= """
    <?xml version=\"1.0\" encoding=\"UTF-8\"?><speak version=\"1.0\" xml:lang=\"en-us\"><voice xml:lang=\"en-us\"  name=\"Microsoft Server Speech Text to Speech Voice (zh-CN, Yaoyao, Apollo)\">hello</voice></speak>
"""

Заранее спасибо.

...