2015-07-15 2 views
0

Мне нужно убедиться, что URL-адрес, который вводит пользователь, идет туда, куда он должен идти. Я имею в виду, если пользователь вводит «http://google.com/blablabla» или «http://google123.com/blablabla». Мне нужно выяснить, что второй URL-адрес неверен, потому что он не откроет веб-сайт Google. Есть ли какой-нибудь метод в Swift для этого? Или мне просто нужно проверить, содержит ли URL-адрес «http://google.com»?Проверьте правильность имени домена

+0

@MartinR Google был похож на пример. Пользователь вводит некоторый URL-адрес в текстовое поле, и мне нужно проверить, идет ли URL-адрес на конкретный веб-сайт или нет. В моем примере конкретным веб-сайтом был Google. – Steve

ответ

3

1. искаженного URL

Чтобы проверить, является ли неправильным форматом URL-адрес, пусть OS сделать это: (проверьте, что URL имеет все детали, необходимые, а именно схемы и хозяин)

if let validateUrl = NSURL(string: rawStringInput) { 
    if let scheme = validateUrl.scheme { 
     // the scheme contains "http" 
     if let host = validateUrl.host { 
      // the host contains "google.com" 
      // Success: rawStringInput is well formed 
     } 
    } 
} 

Вы можете запросить все виды информации из URL, такие как схемы (HTTP), хост (google.com), путь (блаблабла), фрагмент, порт и т. Д.

2. Действительный URL

Если вы хотите знать, является ли достижимым URL (то есть удаленный сервер отвечает на него), вы на самом деле нужно сделать запрос HTTP.

+0

Что делать .схема и. хозяин делать? – Steve

+0

Хорошая точка. Сделано редактирование ответа. Идея состоит в том, чтобы позволить ОС разобрать «rawInputString» и протестировать против непустой схемы, такой как «http» или «https», плюс нулевой хост. Кроме того, вы можете проверить на * blablabla ", посмотрев на путь. – SwiftArchitect

+0

Большое спасибо, метод хоста именно то, что я искал! – Steve

Смежные вопросы