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]