NSURLRequest中不支持的URL

如果我从终端运行此请求,我可以正常看到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?

尝试在您的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,我想你不会得到任何结果。 当url不受支持时,会出现错误代码= -1002。

如前所述,URL中的空格可能会导致此问题,但您的字符串也可能包含不受支持的字符。 例如,如果您复制并粘贴PDF,Word或其他文档中的URL,则可能包含不受支持的字符。 它看起来很好但不是编译器。

要解决此问题,请在[NSURL URLWithString:@"http://blabhblabh"]方法中删除整行代码,而不仅仅是url,并手动重新键入链接和方法。

就我而言,我在Swift中传递了一个未包装的可选项。 一旦我将可选项解包为字符串,就会正确接受该URL。

与Alf G相同的答案,但与IOS 9+相同

 strUrl = [strUrl stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLHostAllowedCharacterSet]