Неподдерживаемый 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]