Внешне сбой операции Alamofire.upload для библиотеки - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь загрузить изображение, выбранное пользователем, либо через галерею, либо с помощью фотографии, но получаю 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)
            }
    })

1 Ответ

0 голосов
/ 23 января 2019

Это может произойти из-за того, что вы подключаетесь через TLS (https), а сервер, к которому вы подключаетесь, имеет недоверенный или недействительный открытый сертификат SSL. Причиной может быть, например, срок его действия истек, он выдан по неправильному URL-адресу или самоподписан.

Лучшая практика заключается в реализации правильного ServerTrustPolicy. На этапе разработки может быть достаточно доверять любому URL, но когда дело доходит до производства, проверка SSL обязательна.

Посмотрите на ссылку: Alamofire с самозаверяющим сертификатом / ServerTrustPolicy

...