NSURLConnection Delegate는 서버 상태 401에 대한 didreceiveAuthenticationchallenge 메소드를 얻지 못합니다.

StackOverflow https://stackoverflow.com/questions/727600

문제

HTTP-Server를 쿼리하기 위해 간단한 nsurlconnection을 설정합니다.

GET /path HTTP/1.1
Host: 192.168.1.161:8282
User-Agent: NetTest1.0 CFNetwork/441.0.2 Darwin/9.6.0
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Pragma: no-cache
Connection: keep-alive

서버는 코드 401 및 www-authenticate 헤더 세트로 응답합니다.

HTTP/1.1 401
Connection: close
Pragma: no-cache
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Cache-control: no-cache
Cache-last-checked: Thu, 01 Dec 1994 16:00:00 GMT
Last-modified: Tue, 07 Apr 02009 22:55:48 CEST
Content-type: text/html; charset=iso-8859-1
WWW-Authenticate: Basic realm:

나는 이것이 내 대의원의 연결에 메시지를 보낼 것이라고 생각할 것이다 : didreceiveauthenticationchallenge : method, 그러나 그렇지는 않습니다.

나는 또한 구현했다

- (BOOL)connectionShouldUseCredentialStorage:(NSURLConnection *)connection {
  return FALSE;
}

내 키 체인에서 캐시 된 자격 증명을 따라 보내려고하지 않도록하기 위해.

도움이 되었습니까?

해결책

www-authenticate 헤더가 잘못된 것처럼 보입니다.

WWW-Authenticate: Basic realm="My Realm"
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top