Получите прогресс загрузки для многокомпонентной загрузки Alamofire5

До Alamofire5 мы могли user encodingReesult of uploadRequest для получения uploadProgress. Но теперь, после загрузки Alamofire до версии 5 на основе документации Alamofire, мы можем использовать.uploadProgress чтобы получить обработчик хода загрузки.

Вот мой код:

AF.upload(multipartFormData: { multipartFormData in
            multipartFormData.append(fileContent, withName: "file", fileName: filePath.lastPathComponent)
            multipartFormData.append(token.data(using: .utf8)!, withName: "token")
        }, to: uploadURL)
        .uploadProgress { progress in 
            print(progress)
        }
        .responseJSON { [weak self] response in
            print(response)
        }

Но uploadProgress закрытие никогда не вызывалось во время загрузки.

Я проверил много stackru вопросы но никто не работал.

3 ответа

Если вы установили библиотеку для отладки сетевого трафика, такую ​​как Wormholy , то просмотрите эту тему. Вкратце, это проблема с библиотекой, и ее удаление решает проблему. Не уверен, что с другими сетевыми отладчиками. Чтобы прояснить ситуацию, попробуйте поиграть в новом чистом проекте и посмотреть, работает ли alamofire в такой среде.

Замените ваш

.uploadProgress { progress in 
            print(progress)
        }

с

.uploadProgress(closure: { (progress) in
print("Upload Progress: \(progress.fractionCompleted)")
})

он даст вам результат как:

Upload Progress: 0.035203331252732804
Upload Progress: 0.035203331252732804
Upload Progress: 0.0528049968790992
Upload Progress: 0.088008328131832
Upload Progress: 0.1584149906372976
Upload Progress: 0.2112199875163968
Upload Progress: 0.2288216531427632
Upload Progress: 0.24642331876912962
Upload Progress: 0.24642331876912962
Upload Progress: 0.24642331876912962
Upload Progress: 0.24642331876912962
Upload Progress: 0.24642331876912962
Upload Progress: 0.24642331876912962
Upload Progress: 0.24642331876912962

Редактировать:

AF.upload(multipartFormData: { MultipartFormData in
        MultipartFormData.append(fileContent, withName: "file" , fileName: filePath.lastPathComponent , mimeType: "image/jpeg")
        for(key,value) in dictonary {
            MultipartFormData.append(token.data(using: String.Encoding.utf8)!, withName: "token")
        }
    }, to: uploadURL, method: .post, headers: ["Content-Type": "application/json")

        .uploadProgress(closure: { (progress) in
            print("Upload Progress: \(progress.fractionCompleted)")
        })

        .responseJSON{ (response) in
            debugPrint("SUCCESS RESPONSE: \(response)")
         }

У меня тоже есть такая проблема. Я пытаюсь решить ее разными способами. В конце концов, я удаляю модуль «CocoaDebug». Это сработало. Так что я думаю, что, возможно, CocoaDebug нарушает работу сети.

Другие вопросы по тегам