Вы можете использовать этот метод, как он работал для меня:
ичок в iOS и использую Alamofire для загрузки изображений. Код, который я написал, выглядит следующим образом:
let image = imageView.image
let imgData = UIImageJPEGRepresentation(image!, 0.2)!
let headers: HTTPHeaders = [
"x-access-token": "######",
"Accept": "application/json"
]
let parameters = ["profile_picture": "kinza"]
let url = try! URLRequest(url: URL(string:"######")!, method: .post, headers: headers)
Alamofire.upload(multipartFormData: { multipartFormData in
multipartFormData.append(imgData, withName: "profile_picture",fileName: "kinza.jpg", mimeType: "image/jpg")
for (key, value) in parameters {
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
}
},
with: url)
{ (result) in
switch result {
case .success(let upload, _, _):
upload.uploadProgress(closure: { (progress) in
print("Upload Progress: \(progress.fractionCompleted)")
})
upload.responseJSON { response in
print(response.result.value)
}
case .failure(let encodingError):
print(encodingError)
}
}
Когда я запускаю этот код, я получаю следующий журнал:
2017-11-07 11:03:21.595826+0500 TestApiProject[2457:51089] [] nw_socket_get_input_frames recvmsg(fd 6, 4096 bytes): [54] Connection reset by peer
2017-11-07 11:03:21.596094+0500 TestApiProject[2457:51089] TIC Read Status [1:0x6040003612c0]: 1:54
2017-11-07 11:03:21.596495+0500 TestApiProject[2457:51089] [] nw_socket_output_finished shutdown(6, SHUT_WR): [57] Socket is not connected
2017-11-07 11:03:21.597203+0500 TestApiProject[2457:51089] Task <9A25E63E-EC42-419C-A0B7-02998177EDCA>.<1> HTTP load failed (error code: -1005 [4:-4])
2017-11-07 11:03:21.597681+0500 TestApiProject[2457:51091] Task <9A25E63E-EC42-419C-A0B7-02998177EDCA>.<1> finished with error - code: -1005
Upload Progress: 1.0
nil
Он искал, но не нашел ничего специфического для «error code -1005». Как я могу это решить? Я что-то пропустил?
У меня есть определенные вопросы по этому поводу:
Если загрузка http не удалась, то как управление перешло к успешному блоку запроса Alamofire?Значение response.result.value равно нулю. Что-то не так с моей стороны или со стороны сервера?Нужно ли добавить еще атрибуты в мой info.plist? Вот как это сейчас.Любая помощь приветствуется.