これを理解することが困難でした。 Alamofire(4.4.0)を使用した投稿要求と私のヘッダはほとんどのものでうまく動作しますが、今回はビデオと同様にストリングの辞書を送る必要があります。Alamofire multiPartFormDataアップロードにヘッダーを追加する
ビデオはUIImagePickerControllerを介して記録され、最終的にそれを辞書にする情報は一連のスライダ、スイッチ、およびテキストフィールドによって作成されます。
次のように私に迷惑を与えているブロックがある:
let headers: HTTPHeaders = [
"X-Access-Token": self.user
]
let requestUrl = try! URLRequest(url: "http://exampleUrl.com", method: .post, headers: headers)
upload(
multipartFormData: { (multipartFormData) in
multipartFormData.append(videoURL!, withName: "video_source")
multipartFormData.append(self.alphaLabel.text!.data(using: .utf8)!, withName: "alpha")
multipartFormData.append(self.betaLabel.text!.data(using: .utf8)!, withName: "beta")
multipartFormData.append(self.gammaLabel.text!.data(using: .utf8)!, withName: "gamma")
multipartFormData.append(self.deltaTextField.text!.data(using: .utf8)!, withName: "delta")
multipartFormData.append(self.epsilonScrollPicker.data(using: .utf8)!, withName: "epsilon")
multipartFormData.append(zetaArray!.data(using: .utf8)!, withName: "zeta")
},
to: requestUrl as! URLConvertible) { encodingResult in
switch encodingResult {
case .success (let upload, _, _):
upload.responseJSON { response in
print(response)
}
case .failure (let encodingError):
print(encodingError)
}
}
上記のコードが得られます。 「スレッド1:信号SIGABRT」
コンソール出力: 「の値をキャストできませんでしたが'Foundation.URLRequest'を 'Alamofire.URLConvertible'に変更してください。 "
他のすべての作品は、私はこれを実行したかどうかを確認するには: - 私のサーバーから不正なアクセストークン
let requestUrl "http://exampleUrl.com"
upload(
multipartFormData: { (multipartFormData) in
multipartFormData.append(videoURL!, withName: "video_source")
multipartFormData.append(self.alphaLabel.text!.data(using: .utf8)!, withName: "alpha")
multipartFormData.append(self.betaLabel.text!.data(using: .utf8)!, withName: "beta")
multipartFormData.append(self.gammaLabel.text!.data(using: .utf8)!, withName: "gamma")
multipartFormData.append(self.deltaTextField.text!.data(using: .utf8)!, withName: "delta")
multipartFormData.append(self.epsilonScrollPicker.data(using: .utf8)!, withName: "epsilon")
multipartFormData.append(zetaArray!.data(using: .utf8)!, withName: "zeta")
},
to: requestUrl as! URLConvertible) { encodingResult in
switch encodingResult {
case .success (let upload, _, _):
upload.responseJSON { response in
print(response)
}
case .failure (let encodingError):
print(encodingError)
}
}
を私は他のパラメータを指定せずに異なる要求URL、1を使用している場合は、私は401を取得します。これは私がこの新しい要求でヘッダーに1つを渡すことができないので期待されるべきです。
誰かがアップロードのマルチパートフォームデータリクエストを行う方法を明らかにできるのであれば、とには認証のためのヘッダーが含まれています。
私は画像をアップロードしようとしていません。だから私はあなたの** UIImageJPEGRepresentation **を利用できるとは思っていません。あなたがkutTypeMovieの同等物を知っていない限り、あなたが持っているものが私が必要とするもののために働くかどうかはわかりません。 –
@NickDiVona私はあなたのパラメータを追加し、応答を処理するように言った。これは単なるAlmofire Method呼び出しの表現です。 UIImageJPEGRepresentationがNSDataを返すことを知っていれば、そこでビデオデータを追加できます。 – ChanWarde
ああ、私は参照してください。ありがとうございました。 –