NSURLRequest中不支持的URL

时间:2013-11-29 22:45:38

标签: ios objective-c json 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,我只需要设置回报我需要的内容吗?

11 个答案:

答案 0 :(得分:49)

尝试在网址中加入适当的网址方案,例如

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

答案 1 :(得分:22)

在我的情况下,我用它修复了它:

strURL = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

strURL包含带URL的字符串。

答案 2 :(得分:9)

我也为同样的错误而苦苦挣扎,即使url路径正确但是在http之前还有一个空格,如下所示:

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

因此我将url设为nil,因此它提供了“不支持的URL”。然后删除为我工作的空间。

答案 3 :(得分:8)

在我的情况下,我访问在我自己的mac上运行的服务,所以我的网址是127.0.0.1:8080/list

添加http://方案后。它有效!

现在是http://127.0.0.1:8080/list而不是127.0.0.1:8080/list

答案 4 :(得分:2)

在我的情况下,空格会添加到我的网址中。我删除了空格并运行。即使您传递参数,也请确保您没有在URL中添加任何空格。希望它可以帮到某人。

答案 5 :(得分:1)

它似乎是一个格式错误的网址,或者它根本不是一个有效的网址,尝试在浏览器中点击此网址,我想你不会得到任何结果。当网址不受支持时,会出现错误代码= -1002。

答案 6 :(得分:1)

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

相同
strUrl = [strUrl stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLHostAllowedCharacterSet]

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

在我的情况下,我在Swift中传递了一个未包装的可选项。一旦我将可选项解包为字符串,就可以正确接受URL。

答案 9 :(得分:0)

如果您的URL包含尾随换行符,则会发生此错误。

当我将从文本文件中读取的API密钥(以使其不受版本控制系统限制)附加到URL的末尾时遇到了这个问题,并且该文件包含训练空白。

请参见https://stackoverflow.com/a/4645700/12484,以获取可将字符串中的换行符修剪掉的代码。

答案 10 :(得分:0)

我通过下面的代码解决了VIA

FinalUrl = [FinalUrl stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLQueryAllowedCharacterSet];

谢谢。