我想上传用户通过图库或拍照选择的图像,但是我得到SSL_ERROR_SYSCALL(5)。
完整错误:boringssl_session_errorlog(236)[C1.1:2] [0x105a04e20] [boringssl_session_write] SSL_ERROR_SYSCALL(5):库外部操作失败
我尝试了多种带有参数且没有参数的方法。我知道上传脚本正在运行,因为我可以使用Postman向端点发送请求,并且文件可以正确上传。
let headers: HTTPHeaders = [
"Content-type": "multipart/form-data"
]
let imageData = UIImagePNGRepresentation(imgPostHero.image!)
Alamofire.upload(multipartFormData:{ multipartFormData in
multipartFormData.append(imageData!, withName: "image", fileName: "uploaded_image.png", mimeType: "image/png")},
usingThreshold: UInt64.init(),
to: "https://url_to_upload_script",
method: .post,
headers: headers,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
print(response)
}
case .failure(let encodingError):
print(encodingError)
}
})
答案 0 :(得分:0)
之所以可能发生,是因为您通过TLS(https)连接并且连接的服务器具有不受信任或无效的SSL公共证书。原因可能是它已过期,发布到错误的网址或已自签名。
最佳做法是实施适当的ServerTrustPolicy。 在开发阶段,信任任何URL可能就足够了,但是在生产中,必须进行SSL验证。
查看链接:Alamofire with a self-signed certificate / ServerTrustPolicy