Есть ли способ узнать, какой номер порта NSURLRequest
будет использовать для удовлетворения конкретного NSURL
?
Очевидно, я мог бы жестко кодировать порт 80 для http
запроса и порт 443 для https
запросов. Но, безусловно, в Cocoa Touch есть встроенный способ получения номера порта из схемы URL.
Метод port
для NSURL
возвращает значение, только если порт указан в URL-адресе. Это будет работать для http://stackoverflow.com:80
, но не для более распространенного http://stackoverflow.com
.
Здесь контекст заключается в том, что я вхожу в веб-службу, которая перенаправляет меня (скажем, с (http://webservice.invalid/path/to/api до http://webservice2.invalid:2003/path/to/api).). Все URL-адреса основаны на базовом URL-адресе службы, который я хочу обновить до отражать реальность и избегать перенаправлений в будущем.
В данный момент я извлекаю схему и хост, но не учел, что порт также может измениться. Я не хочу указывать порт в будущих запросах, если я не получил порт как часть перенаправления.