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


person ghostrider    schedule 29.11.2013    source источник
comment
Попробуйте добавить http:// в начало URL.   -  person rmaddy    schedule 30.11.2013
comment
Добавить http:// и повторить попытку? Кроме того, вы запрашиваете порт таким образом или через запрос URL (я сам не уверен).   -  person David H    schedule 30.11.2013
comment
Согласованный. Без http:// (или другого префикса URL) это вообще не URL.   -  person russellm    schedule 30.11.2013
comment
убедитесь, что ваш сервер работает, а затем убедитесь, что префикс URL   -  person Saad Chaudhry    schedule 30.11.2013


Ответы (11)


Попробуйте включить соответствующую схему URL-адреса в свой URL-адрес, например.

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

person Vizllx    schedule 30.11.2013
comment
У меня есть URL-адрес, начинающийся с http://..., и я все еще получаю сообщение об ошибке. Кто-нибудь знает, что еще может быть причиной этого? - person 最白目; 24.02.2015
comment
@最白目 в моем случае проблема была в конце URL-адреса. Я сомневаюсь, что вам все еще нужен ответ на это, но это может помочь кому-то в будущем :) - person i.bel; 20.01.2020

В моем случае я исправил это следующим образом:

strURL = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

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

person Alf G    schedule 26.09.2015

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

После того, как я добавлю схему http://. Оно работает!

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

person halftrue    schedule 17.05.2016

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

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

поэтому я получал URL-адрес как ноль, поэтому он давал «неподдерживаемый URL-адрес». то, удалив пробел, у меня сработало.

person Keshav    schedule 18.12.2014
comment
Большое спасибо, вы сэкономили день - person Sakthimuthiah; 07.10.2016
comment
Добро пожаловать, если это поможет вам, ребята, не могли бы вы оценить мой ответ? - person Keshav; 12.10.2016

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

strUrl = [strUrl stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLHostAllowedCharacterSet]
person Aviv Frenkel    schedule 10.06.2018

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

person Narasimha Nallamsetty    schedule 11.06.2015

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

person Justin Domnitz    schedule 20.04.2016

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

person Sanchit Kumar Singh    schedule 27.07.2016

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

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

person ClintChil    schedule 29.05.2015

Эта ошибка может произойти, если ваш URL-адрес содержит завершающую новую строку.

Я столкнулся с этим, когда добавлял ключ API, считанный из текстового файла (чтобы он не попадал в систему контроля версий), в конец URL-адреса, а файл содержал обучающий пробел.

См. https://stackoverflow.com/a/4645700/12484 для кода, который будет обрезать символы новой строки из строки.

person Jon Schneider    schedule 05.06.2020

Я решил VIA ниже кода

FinalUrl = [FinalUrl stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLQueryAllowedCharacterSet];

Спасибо.

person Aaban Tariq Murtaza    schedule 28.09.2020