apple's doc- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
은 오류 매개 변수를 통해서만 클라이언트 측 오류를보고합니다.NSURLSession에서 HTTP 오류를 처리하는 가장 좋은 방법은 무엇입니까?
참고 : NSURLSession은 error 매개 변수를 통해 서버 오류를보고하지 않습니다. 앱이 error 매개 변수를 통해받는 유일한 오류는 호스트 이름을 확인하거나 호스트에 연결할 수없는 등의 클라이언트 측 오류입니다. 오류 코드는 URL로드 시스템 오류 코드에 설명되어 있습니다. 서버 측 오류는 NSHTTPURLResponse 객체의 HTTP 상태 코드를 통해보고됩니다.
그러나 내가 NSURLSessionDataTask
으로 iOS9에서 테스트 할 때 현재 애플은 약간의 HTTP 오류를 NSURLError
에 매핑 한 것 같습니다. 예 : 404
to NSURLErrorFileDoesNotExist
. 이 사실은 우리가 이전에 가지고 있었던 가정을 깨고, many snippet also take the error parameter as connection error, 이것은 절대적으로 틀릴 것입니다.
나는 애플을 찾아 보려고 노력하며 애플은 NSURLSessionDownloadTask
에서이 변경 사항만을 언급했을 수 있습니다. 그리고이지도가 어떻게 적용되는지 잘 문서화되지 않았습니다.
는 NSURLSessionDataTask 또는 NSURLSessionUploadTask 달리, NSURLSessionDownloadTask는 NSError 객체를 해당로 HTTP 상태 코드를 통해보고 서버 측 오류를보고합니다. 개인적으로
나는 애플의 데브 팀은 큰 실수를 한 것 같아요; 그리고이 문서는 아직 일관성이없고 두렵지도 않다.
이번 변경 사항에 대한 자세한 정보는이 정보가 있습니까? 그리고 지금 연결 오류와 HTTP 오류를 구분하는 가장 좋은 방법은 무엇입니까?
이 대답을보십시오 : http : // stackoverflow.com/questions/2342579/http-status-code for update and delete? rq = 1 – Wink
해당 링크의 관련 답변/토론은 무엇입니까? – marosoaie