Должен ли пользовательский NSURLProtocol следовать перенаправлению сам, или пусть его клиент беспокоится об этом?

Протокол NSURLProtocolClient включает метод, -URLProtocol:wasRedirectedToRequest:redirectResponse:, которые экземпляры подклассов NSURLProtocol должны использовать, чтобы сообщить клиенту протокола URL, что запрос был перенаправлен. Однако я не уверен, должен ли тогда протокол URL-адресов пытаться получить ресурс из перенаправленного URL-адреса или позволить клиенту выдать новый запрос для этого ресурса.

Может ли кто-нибудь сказать мне, что должен делать исходный объект протокола URL в случае перенаправления?


person Caleb    schedule 18.04.2012    source источник


Ответы (1)


Чтобы ответить на этот вопрос, я просто удалил код в своей реализации протокола URL, который следует за ссылкой, указанной в ответе перенаправления. Должно быть довольно очевидно, если клиент соединения создает новое соединение для загрузки нового URL-адреса. Как оказалось, ничего не произошло — клиент никогда не создает новое соединение, и перенаправление не выполняется. Из этого я должен сделать вывод, что сам протокол URL должен попытаться загрузить URL-адрес, указанный в ответе перенаправления.

person Caleb    schedule 20.04.2012
comment
Я пытаюсь реализовать свой собственный протокол URL-адресов, и в нем я хочу автоматически загружать перенаправленный URL-адрес в протокол и отправлять его в систему загрузки URL-адресов. Достаточно ли изменить URL: ключ на перенаправленный URL-адрес в ответе или мне нужно сделать что-то еще? - person Ravi; 11.06.2014
comment
Спасибо, что разобрались. Ни в одном из руководств по NSURLProtocol, которые я видел, не упоминается обработка перенаправлений. - person bugloaf; 08.11.2014