2017-09-11 1 views
0

에 가져 오기 HTTP 상태 코드가있는 NSURLConnection 요청에 실패 후에 내가 HTTP 상태 코드를 얻을 수있는 방법이 있습니까? 설명서에 따르면 -connection:didReceiveResponse:에서 HTTP 상태 코드를 얻을 수 있습니다. 그러나 요청이 실패 할 경우에만 -connection:didFailedWithError:이 호출되며,이 메서드 내에서 상태 코드를 가져 오는 메소드를 찾지 못했습니다.있는 NSURLConnection - 요청 오류

P/S : 나는 아주 오래된, 복잡한 프로젝트에서 일하고 있어요, 그것은 매우 오류가 발생하기 쉬운, 그래서 내가 AFNetworking 또는 NSURLSession을 사용할 수 없습니다.

+0

오류 인스턴스의 사용자 정보를 인쇄 했습니까? 일반적으로 추가 정보가 들어 있습니다. –

+0

나는 그것을 시도했다. 슬프게도 상태 코드가 없다. –

+0

오류 인스턴스의 로그를 추가 할 수 있습니까? –

답변

-1

Apple 문서에 언급 된대로 NSURLConnectionDataDelegate Protocol 연결 : didReceiveResponse :는 NSURLResponse 객체를 만들기에 충분한 데이터가 수신 된 경우에만 호출됩니다. didReceiveData : 연결 방법이 연결을 이용하여 부분 데이터를 수신하기위한

NSURLResponse 객체까지 나중에 사용할 수 없을 수도 있지만

는 것이 가능하다. 이것은 HTTP 헤더를 제외하고 응답의 "데이터"구성 요소 만 포함하는 것 같습니다. didReceiveResponse를 트리거하는 방법이있을 수 있습니다. 서버가 미리 전송할 데이터의 양을 미리 알고있는 경우 일찍이이를 확인하여 충분히 익숙하지는 않습니다.

는 응답 데이터는 일반적으로 데이터를 각각의 약 1KiB 블록에서 오는주의, 같은 MTU와 빈도 서버 "플러시"출력 파이프 등 다양한 네트워크 설정에 따라 달라집니다.

행운을 빈다.

+0

상태 코드가'-connctionDidReceiveData : '에 의해 수신 된 데이터의 일부인지 확인 하시겠습니까? –

+0

Hrm .. 옳은 것처럼 보입니다. 실제 "데이터"부분 만 반환되며 didReceiveResponse에는 실제 .allHttpHeaders 필드가 포함됩니다. 더 많은 조사가 필요합니다. 감사합니다 @ AminNegm - 아 와드 – ekscrypto

+0

더 나는 무엇을 달성하려고하는 것은 필요 하나 자신의 네트워크 스트림을 작성하고 수동으로 응답을 처리, 또는 개인 메소드에 액세스 할 얻을 것으로 보인다 본 연구 (안 권장!) 등 https://github.com/apportable/Foundation/blob/master/System/CFNetwork/private_include/CFNetwork/CFURLConnection.h – ekscrypto

관련 문제