Какие схемы понимает NSURL/NSURLRequest/NSURLConnection?

Apple говорит, что NSURL разработан с использованием RFC 1738 (и некоторых других).

Теперь RFC 1738 указывает только, что веб-URL имеет схему и часть, относящуюся к схеме.

Я хочу знать все схемы, которые понимает NSURL. И поскольку я использую его с NSURLRequest и NSURLConnection (так называемая «система загрузки URL»), я должен знать все схемы, которые они понимают.

Почему? Потому что я просто хочу знать. Apple не рассказывает об этом подробно в документации, просто говорит о соответствии RFC 1738. Это говорит о многом и ни о чем.


person openfrog    schedule 21.01.2010    source источник


Ответы (2)


NSURL "поддерживает" любую схему, потому что ничего не знает о том, как использовать рассматриваемую схему. Это просто оболочка вокруг концепции URL.

Точно так же NSURLRequest ничего больше не знает, но у него есть возможность хранить дополнительную информацию, которая может быть специфичной для протокола.

NSURLConnection — это то место, где вы начинаете получать больше информации о протоколе. NSURLConnection способен поддерживать любой URL-адрес, который вы ему бросите, при условии, что для этого зарегистрирован подходящий подкласс NSURLProtocol. Но по умолчанию он задокументирован для поддержки http:, https:, ftp: и file:. Вы можете проверить это с помощью быстрого вызова +canHandleRequest:.

Эмпирически система также поддерживает data: URL-адресов. Я подал заявку на сайте Radar://problem/13649313 в Apple с просьбой задокументировать это.

person Mike Abdullah    schedule 21.01.2010

Встроенные протоколы URL могут обрабатывать схемы http, https, file, ftp, about и data.

Вы можете определить свои собственные протоколы, чтобы система NSURL автоматически обрабатывала новые схемы, используя класс NSURLProtocol.

person Ken Aspeslagh    schedule 21.01.2010