Ошибка API загрузки видео Vimeo Swift - PullRequest
0 голосов
/ 07 мая 2020

В моем проекте мне нужно загрузить видео на vimeo, и я зарегистрировал бизнес-аккаунт на vimeo. Я использовал https://developer.vimeo.com/api/upload/videos этот учебник для его реализации в моем проекте. Я следую возобновляемому подходу к загрузке видео.

Заголовок Установить значение

Tus-Resumable 1.0.0 Upload-Offset 0 Content-Type application/offset+octet-stream Accept application/vnd.vimeo.*+json;version=3.4

Upload-Offset имеет данные целочисленного типа, другой ключ имеет содержимое строкового типа. Я использую «Alamofire», «~> 4.1» для работы в сети. Код состояния возврата ответа API: 412.

Content-Type - application / octet-stream, Как загрузить видео с помощью alamofire.i я получаю ошибку несовместимого типа данных

Функция, используемая для вызова API

`fun c uploadVimeoVideo () {

    let UrlString       = self.m_strUploadLink

    let dicHeader  : [String : Any] = ["Tus-Resumable" : "1.0.0","Upload-Offset" : 0,"Content-Type" : "application/octet-stream","Accept" : "application/vnd.vimeo.*+json;version=3.4"]

    var videodata  : Data!

           Alamofire.upload(multipartFormData: { (multipartFormData) in

               do
               {
                   videodata = try Data(contentsOf: IN_strFileURL, options: .mappedIfSafe)

                   print(videodata)
               }
               catch
               {
                   print("Error")
               }

               if let data = videodata{
                   multipartFormData.append(data, withName: "file", fileName: "image.mp4", mimeType: "application/octet-stream")
               }

           }, usingThreshold: UInt64.init(), to: UrlString, method: .patch, headers: dicHeader as? HTTPHeaders) { (result) in
               switch result{
               case .success(let upload, _, _):
                   upload.responseString { response in
                       print("Succesfully uploaded",response)
                       var returnResult : NSDictionary = [:]
                       if let data = response.result.value
                       {

                           if INT_DEBUG_LOG == 1
                           {
                               let result = data
                               if let data = result.data(using: .utf8) {
                                   do {
                                       returnResult = try JSONSerialization.jsonObject(with: data, options: []) as! NSDictionary
                                   } catch {
                                       print(error.localizedDescription)
                                   }
                               }

                               self.delegate?.DidFinishUploadVideo!(iSsuccess: true, IN_mutdicResponse: returnResult)
                           }

                       }

                       if let err = response.error{
                           let data = response.result.value
                           let result = data
                           if let data = result?.data(using: .utf8) {
                               do {
                                   returnResult = try JSONSerialization.jsonObject(with: data, options: []) as! NSDictionary
                               } catch {
                                   print(error.localizedDescription)
                               }
                           }
                           self.delegate?.DidFinishUploadVideo!(iSsuccess: false, IN_mutdicResponse: returnResult )
                           return
                       }

                   }
               case .failure(let error):
                   print("Error in upload: \(error.localizedDescription)")

               }
           }
}`
...