iOS BACKGROUND FETCH n BACKGROUND TRANSFER를 사용하여 앱을 업데이트합니다.iOS8 : NSURLSession : NSURLSessionDataTask '전체 응답을 받기 전에 클라이언트 연결이 끊어졌습니다.'
우리는 많은 파일의 큰 다운로드의 일환으로 MP4를 다운로드 할 때 다운로드가 갑자기 중지하고 오류를 얻을 수 있습니다 :
'Client closed connection before receiving entire response'
HTTP 코드는 여전히 200
우리가 제한에 대한이 없습니다 데이터를 회사의 셀룰러 계정으로 인해 배포하고 iPad에서 단일 응용 프로그램을 사용하므로 관리인은 새로 설치하면 20/30을 초과하는 많은 양의 데이터와 파일을 다운로드하기를 원합니다. 그들은 매일 출간되는 기업 비디오/pdf입니다.
나는 각 다운로드 작업에 내 NSURLSession에서 나는 NSURLSessionDownloadTask를 만들 MP4 또는 PDF 각 URL에 대해 그런 다음 NSURLSession에게 이력서를NSURLSessionDownloadTask * downloadTask_ = [backgroundSession_ downloadTaskWithURL:url_];
화재를
NSURLSession * backgroundSession_ = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:identifier]
을 만들었습니다. NSURLSession을 모두 반환하면 응용 프로그램이 업데이트되었음을 알리는 알림 메시지가 나타납니다.
필자는 내 Mac에서 CHARLES PROXY를 사용하여 다운로드를 모니터링합니다. 많은 파일이 있기 때문에 시간이 좀 걸리며 영화가 너무 느려질 수 있음을 알았습니다. 일반적으로 다운로드 된 파일을 확인하고 최신 파일 만 다운로드하지만 다운로드가 많으면 mp4에 대한 스트림이 자주 죽는 것으로 나타났습니다. 그들은 200 코드를 가지고 있지만 메시지와 함께
'클라이언트는 전체 응답을 받기 전에 연결을 닫았'
이 중단 일종의 얻을 수 있도록 내 동기화를 완료 내 NSURLSession을 중지 할 수 있기 때문에이 발생할 수 있습니다 어떤 생각을 상태.
IMAGE : OK 다운로드 : 동영상 스트림 디스크에 저장 : 200 : 전체는
이미지 : 다운로드가 갑자기 중지됩니다
어떤 아이디어 : 내가 사용 배경 가져 오기 메시지의 클라이언트가 iOS8 또는 내 응용 프로그램인지 확실하지 않습니다. 각 downloadtask 반환 후 나는 문서에서 MP4로 tmp 파일을 복사하고 내가 세션을 통지 한 후 실패 downloadtask 이들 중 일부는 결코 완료되지 및 걸리면
[session finishTasksAndInvalidate];
를 호출합니다. 또 다른 가져 오기를 수행 할 때 이전의 다운로드 작업과 이전 세션을 모두 가져옵니다.
이 문제에 대한 해결책을 찾았습니까? 그것은 정확하게 동일한 문제가 여기에있어 찰스 - 버그면 궁금해 ... – niggeulimann
2 년 전하지만 내 코드에 주석에 따라 시간 제한 inc - 아래 대답을 참조하십시오 –
좋아! 나는 그것을 조사 할 것이다! – niggeulimann