Делегат NSURLConnection не получает метод DidReceiveAuthenticationChallenge при статусе сервера 401

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

Вопрос

Я настроил простой NSURLConnection для запроса http-сервера.

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:метод, но это не так.

Я также реализовал

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

Просто чтобы убедиться, что он не пытается отправить кэшированные учетные данные из моей связки ключей, чего он не делает.

Это было полезно?

Решение

Заголовок WWW-Authenticate выглядит искаженным, попробуйте:

WWW-Authenticate: Basic realm="My Realm"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top