Я пытаюсь загрузить изображение на сервер, используя alamofire с базовой аутентификацией. Я могу отправить изображение на сервер, изображение находится на сервере, но не могу получить ответ JSON от сервера.
вот код, который я использую для отправки изображения дефекта на сервер
func uploadDefect(defectRemark: String, defectLocation: String, defectImage: UIImage, fileNameImage: String, completion: @escaping(_ errorMessage: String?) -> Void) {
guard let imgData = defectImage else {return}
let urlUpload = URLService.uploadDefect.endPoint
let username = "admin"
let password = "1234"
var headers: HTTPHeaders = [:]
if let authorizationHeader = Request.authorizationHeader(user: username, password: password) {
headers[authorizationHeader.key] = authorizationHeader.value
}
let parameters : [String:Any] = ["defect_remark" : defectRemark, "defect_location": defectLocation, "tenant_id" : tenantID]
let url = try! URLRequest(url: URL(string: urlUpload)!, method: .post, headers: headers)
Alamofire.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(imgData, withName: "file", fileName: fileNameImage, mimeType: "image/jpeg")
for (key, value) in parameters {
multipartFormData.append("\(value)".data(using: String.Encoding.utf8)!, withName: key as String)
}
},
with: url,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
print("upload response: \(response)")
switch response.result {
case .failure(let error) :
let message : String
if let httpStatusCode = response.response?.statusCode {
print("httpStatusCode: \(httpStatusCode)")
switch(httpStatusCode) {
case 404:
message = "File not found"
case 500 :
message = "Internal Error"
default:
message = "Connection issue, please make sure you have a good internet access, or please contact IT Support."
}
} else {
message = error.localizedDescription
}
completion(message)
case .success( _) :
completion(nil)
}
}
case .failure(let encodingError):
let messageEncodingError = encodingError.localizedDescription
print(encodingError)
completion(messageEncodingError)
break
}
}
)
Я пытаюсь отладить код, и он напечатан в моей области отладки
загрузить ответ: СБОЙ:
responseSerializationFailed (Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed (ошибка
Domain = NSCocoaErrorDomain Code = 3840 "Недопустимое значение вокруг символа
1. "UserInfo = {NSDebugDescription = Недопустимое значение для символа 1.}))
httpStatusCode: 201
httpStatusCode - 201, но я не понимаю, почему это неудачный ответ, насколько я знаю, префикс 2xx является успешным, я действительно не понимаю, почему сериализация ответа не удалась. не могли бы вы помочь мне решить эту проблему?