从Microsoft和CloudSight API获得Null响应

时间:2017-10-08 06:04:28

标签: swift api azure cloudsight

我一直在尝试使用CloudSight API使用Swift 4和iOS 11发送图像。我目前正在将图像转换为base64编码的字符串,并将数据作为JSON发送到CloudSight服务器,但我总是得到一个空响应。 CloudSight的工作人员向我推荐我不使用base64,而且我应该使用multipart / form-data请求。任何帮助都会受到赞赏,因为CloudSight文档没有完全涵盖如何使用存储在变量中的图像,例如我的情况,所以我不确定创建POST参数时应该使用的键,以及如何构建multipart请求在这种情况下。 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也会打印&#34; nil&#34;。

再次感谢!

0 个答案:

没有答案