インターネットに接続されていない状態でプロジェクトをテストすると、アップロード関数を呼び出すために、失敗した状況を見つけることができません。
ステータスコードを出力しましたが、nilが表示され、デフォルト値が表示されます。
私がどうかしましたか、まずいことでもありましたか?
また、次のテキストのようなこのエラーが発生しました。
==)[r]:失敗:エラードメイン= NSURLErrorDomainコード= -1009 "インターネットへの接続が切断されたようです。" UserInfo = {NSUnderlyingError = 0x1d4441560 {エラードメイン= kCFErrorDomainCFNetworkコード= -1009 "(null) "UserInfo = {_kCFStreamErrorCodeKey = 50、_kCFStreamErrorDomainKey = 1}}、NSErrorFailingURLStringKey = https:// appdominname / chatroom / 5a3cba41f7255b356eeee33 / media、NSErrorFailingURLKey = https:// appdominname / chatroom / 5a3cba41f7255b356 eeKeyizedKeyscription = https:// eeKeyscription CF = LocalError = 1、CF_MainCode = 1、Stream = Error = LocalCode = 1、CFee_33 / media、インターネットから切断されているようです。}
==)[c]:123
func uploadPost(parameters:[String:Any], fileUrl:URL, _ callback: @escaping (JSON) -> Void) {
let url = self.customUrl(parameters)
Alamofire.upload(multipartFormData: { (multipartFormData) in
multipartFormData.append(fileUrl, withName: "media")
for (key, value) in parameters {
multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
}
}, usingThreshold: .init(), to: url, method: .post, headers: ["Authorization": "Bearer \(currentUser.token)"]) { (encodingResult) in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON(completionHandler: { (response) in
print("==)[r]:",response)
print("==)[c]:",response.response?.statusCode ?? "123")
if let statusCode = response.response?.statusCode {
switch statusCode {
case 201:
print("success statusCode: \(statusCode)")
default:
print("error with response status: \(statusCode)")
}
}
if let result = response.result.value {
let json = result as! NSDictionary
// print(json["status"] ?? "")
callback(JSON(json))
}
})
case .failure(let encodingError):
alertWithConfirm(title: localString(string: "WARNING"), message: localString(string: "ERROR_UPLOAD_API_FAIL"), afterConfirm: { _ in
callback(JSON(encodingError))
})
print("error:\(encodingError)")
}
}
}
コードにfailure
はエンコード用のブロックのみが含まれ、リクエスト自体には含まれていません。最初のsuccess
ブロックでは、次のようなことを行う必要があります
case .success(let upload, _, _):
switch response.result {
case .success:
//THE REQUEST WAS SUCCESSFUL
case .failure:
//THIS IS WHERE YOU WILL GET YOUR REQUEST FAILURE
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加