Ios Swift-HTTP加载失败(错误代码:-1005[4:-4]),正在通过alamofire上载图像。
我是iOS的新手,使用Alamofire上传图像。我写的代码如下:Ios Swift-HTTP加载失败(错误代码:-1005[4:-4]),正在通过alamofire上载图像。,ios,swift,alamofire,Ios,Swift,Alamofire,我是iOS的新手,使用Alamofire上传图像。我写的代码如下: let image = imageView.image let imgData = UIImageJPEGRepresentation(image!, 0.2)! let headers: HTTPHeaders = [ "x-access-token": "######", "Accept": "application/json"
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
2017-11-07 11:03:21.595826+0500测试项目[2457:51089][]nw_套接字获取输入帧recvmsg(fd 6,4096字节):[54]对等方重置连接
2017-11-07 11:03:21.596094+0500测试项目[2457:51089]TIC读取状态[1:0x6040003612c0]:1:54
2017-11-07 11:03:21.596495+0500测试项目[2457:51089][]nw_插座输出完成关机(6,关机):[57]插座未连接
2017-11-07 11:03:21.597203+0500测试项目[2457:51089]任务。HTTP加载失败(错误代码:-1005[4:-4])
2017-11-07 11:03:21.597681+0500测试项目[2457:51091]任务。已完成,但出现错误-代码:-1005
上传进度:1.0
无
它已经搜索了,但没有找到任何特定于“错误代码-1005”的内容。我如何解决它?我错过什么了吗
我对此有一些疑问:
- 如果http加载失败,那么控制如何转到成功块 阿拉莫菲尔请求李>
- response.result.value的值为零。我的车出毛病了吗 结束还是在服务器端李>
- 我是否需要向info.plist添加更多属性?这是怎么回事 目前是
let image = imageView.image
let imgData = UIImageJPEGRepresentation(image, 0.2)!
let parameters = ["profile_picture": "kinza"]
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)
}
},to:"http://YOUR 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)
}
}
它对我有效。您可以使用此方法,因为它对我有效:
fileprivate func p_uploadImage(_ image: UIImage) {
let parameters = ["channelName" : "Your text param"]
let fileData = UIImageJPEGRepresentation(image, 0.2)
let URL2 = try! URLRequest(url: "Your URL", method: .post, headers: ["Authorization" : authKey!])
Alamofire.upload(multipartFormData: { (multipartFormData) in
multipartFormData.append(fileData!, withName: "upfile", fileName: "upfile", mimeType: "text/plain")
for (key, value) in parameters {
multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
}
}, with: URL2 , encodingCompletion: { (result) in
switch result {
case .success(let upload, _, _):
print("s")
upload.responseJSON {
response in
if let JSON = response.result.value as? [String : Any]{
let messageString = JSON["message"] as? String
}else {
let alertError = UIAlertController(title: "Alert", message: "Image upload error", preferredStyle: UIAlertControllerStyle.alert)
alertError.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: nil))
self.present(alertError, animated: true, completion: nil)
}
}
}
case .failure(let encodingError):
print(encodingError)
let alertError = UIAlertController(title: "Alert", message: "Image upload error", preferredStyle: UIAlertControllerStyle.alert)
alertError.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: nil))
self.present(alertError, animated: true, completion: nil)
}
}
)
}
如何在此代码中合并标题?我也必须在标题中发送一个值。@SalmanGhumsani您的答案中使用的方法与我使用的方法有何不同?这就是为什么它是一个注释,而不是一个答案。我想你可以从那里得到一些参考资料。