更新されたAlamofire 4.0.0では、multipartFormDataを使用してHttpmethodとHttpheadersをアップロードする方法については言及していません。だからこそ、私はそのstackoverflowの質問でグーグルと解決策を見つけました。しかし、問題は私がその答えと同じことをした後、次のエラーメッセージが表示され、ビルドが失敗することです。解決方法を教えてください。
式のタイプは、コンテキストなしであいまいです
ここに私のコーディングがあります:
let URL = try! URLRequest(url: Config.imageUploadURL, method: .post, headers: headers)
Alamofire.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(self.imageData, withName: "image", fileName: "file.png", mimeType: "image/png")
},
to: URL,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
if((response.result.value) != nil) {
} else {
}
}
case .failure( _):
}
}
)
Alamofire.upload(multipartFormData:to:encodingCompletion:)
は、_to:
_引数にURLConvertible
を取ります。代わりに、with:
_引数にURLRequestConvertible
を取るAlamofire.upload(multipartFormData:with:encodingCompletion:)
を使用する必要があります。
型URL()
と同じURL
の引数名は、奇妙なコンパイラエラーの作成に役立つと思います。
以下は私のためにコンパイルします:
_let url = try! URLRequest(url: URL(string:"www.google.com")!, method: .post, headers: nil)
Alamofire.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(Data(), withName: "image", fileName: "file.png", mimeType: "image/png")
},
with: url,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
if((response.result.value) != nil) {
} else {
}
}
case .failure( _):
break
}
}
)
_
私にとっては、ビルドエラーはmultipartFormData.appendBodyData()
が原因でした。 multipartFormData.append()
に置き換えた後、問題は解決しました。
私は同じエラーを受け取りました、多くの時間を費やした後、私はその問題があったことを見つけました:
MutableURLRequest
オブジェクトを渡す代わりにURLRequest
を渡していました。そのため、このエラーが発生していました。 URLRequest
に型キャストすると、動作を開始します。