Неподдерживаемый URL-адрес в NSURLRequest

Если я запускаю этот запрос с моего терминала, я могу видеть запросы JSON как обычно:

curl -XGET 192.168.0.6:8888/scripts/data/backend2/index.php/name/_all

мой код для NSURlRequest таков:

 NSURLRequest *request = [NSURLRequest requestWithURL:
                             [NSURL URLWithString:@"192.168.0.6:8888/scripts/data/backend2/index.php/name/_all"]];

    [[NSURLConnection alloc] initWithRequest:request delegate:self];

и я получаю эту ошибку:

didFailWithError
2013-11-29 22:31:08.164 Ski Greece[607:a0b] Connection failed: Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo=0xcd042d0 {NSErrorFailingURLStringKey=192.168.0.6:8888/scripts/data/backend2/index.php/name/_all, NSErrorFailingURLKey=192.168.0.6:8888/scripts/data/backend2/index.php/name/_all, NSLocalizedDescription=unsupported URL, NSUnderlyingError=0xdbdcc70 "unsupported URL"}

как я могу позвонить по этому URL-адресу? Я не могу получить доступ к коду сервера - я знаю, что это просто настройка, чтобы вернуть мне то, что мне нужно, если я назову этот URL?

9 ответов


попробуйте включить соответствующую схему url в свой url, например

[NSURL URLWithString:@"http://www...


в моем случае я исправил это с помощью этого:

strURL = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

strURL содержит строку с URL-адресом.


Я тоже боролся за ту же ошибку, хотя путь url был правильным, но в нем было пространство перед http, как показано ниже:

NSString *path = @" http://www.mylink/";
NSURL *url = [NSURL URLWithString:path];

поэтому я получал url как nil, и поэтому он давал "неподдерживаемый URL". затем, удалив пространство, сработало для меня.


в моем случае я посещаю службу, работающую на моем собственном mac, поэтому мой url-адрес 127.0.0.1: 8080/list

после добавления схемы http://. Работает!

теперь http://127.0.0.1:8080/list вместо 127.0.0.1: 8080 / list


в моем случае пробелы добавляются в мой URL. Я удалил пробелы и побежал. Убедитесь, что вы не добавили пробелы в URL-адрес, даже когда передаете параметры. Надеюсь, это кому-то поможет.


кажется, его искаженный URL или это не действительный url вообще, попробуйте нажать этот url в браузере, я думаю, вы не получите никакого результата. код ошибки=-1002 возникает, когда url-адрес не поддерживается.


Как указано выше, пробел в URL-адресе может вызвать это, но также возможно, что ваша строка содержит неподдерживаемый символ. Например, при копировании и вставке URL-адреса из PDF, Word или другого документа он может содержать неподдерживаемые символы. На первый взгляд это выглядит нормально, но не компилятор.

чтобы исправить это, в свою [NSURL URLWithString:@"http://blabhblabh"] метод, удалите всю строку кода, а не только url-адрес, и повторно введите ссылку и метод вручную.


в моем случае я проходил развернутый необязательный в Swift. Как только я развернул необязательную строку, URL-адрес был принят правильно.


тот же ответ, что и Alf G, но с IOS 9+

strUrl = [strUrl stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLHostAllowedCharacterSet]