Получение нулевого ответа от API Microsoft и CloudSight

Я пытался отправить изображение с помощью Swift 4 и iOS 11 с помощью API CloudSight. В настоящее время я преобразую изображение в строку в кодировке base64 и отправляю данные в виде JSON на сервер CloudSight, но я всегда получаю нулевой ответ. Персонал CloudSight рекомендовал мне не использовать base64 и использовать запрос multipart/form-data. Буду признателен за любую помощь, так как документация CloudSight не полностью описывает, как использовать изображения, которые хранятся в переменных, таких как мой случай, поэтому я не уверен относительно ключей, которые я должен использовать при создании параметров POST, и как структурировать составную часть запрос в этом случае. Переменная imageData преобразует UIImage, который является фотографией, сделанной iPhone 7, поэтому я предполагаю, что размер изображения может быть проблемой. Я был бы рад ответить на любые другие вопросы, и еще раз спасибо за помощь! Я установил CloudSight Pod и также импортировал его, не уверен, что это изменит.

Это мой текущий код, который имеет проблему (я заменил API KEY своим фактическим ключом):

        let imageData:NSData = UIImagePNGRepresentation(image)! as NSData
        let strBase64 = imageData.base64EncodedString(options: .lineLength64Characters)
        let rawimage = UIImageJPEGRepresentation(image, 0.7)!




let url2 = URL(string: )!"https://api.cloudsight.ai/v1/images"
            var request = URLRequest(url: url2)
            request.httpMethod = "POST"
            request.addValue("application/json""Content-Type", forHTTPHeaderField: )
            request.addValue("CloudSight API KEY", forHTTPHeaderField: "Authorization")
            request.httpBody = \strBase64."{\n \"image\": \"()\",\n \"locale\": \"us_en\" \n}"data(using: .utf8)
            let task = URLSessionshareddataTask..(with: request) { data, response, error in
                ifletlet  response = response,  data = data {
                    let res = JSON(data)
                    print("CLOUD RESPONSE ()"\response)
                    print("CLOUD DATA ()"\res)

                }
                else {
                    printString((describing: error))
                }
            }
      task.resume()

Это ответ, который я получаю с сервера:

CL RESPONSE <NSHTTPURLResponse: 0x1c4238ea0> { URL: https://api.cloudsight.ai/v1/images } { status code: 400, headers {
    "Content-Length" = 0;
    "Content-Type" = "text/html; charset=utf-8";
    Date = "Sun, 08 Oct 2017 05:26:32 GMT";
    Server = "nginx/1.8.1";
    "x-request-id" = "8494da71-f589-439f-b67e-c709f2c1cd7b";
    "x-runtime" = "1.448816";
} }
CL DATA null

При печати данных без преобразования в формат JSON также выводится ноль.

Еще раз спасибо!

0 ответов

Другие вопросы по тегам