В моем проекте мне нужно загрузить видео на 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)")
}
}
}`