NSURLUnsupportedURL -1002 在看似有效的 URL 上

Posted

技术标签:

【中文标题】NSURLUnsupportedURL -1002 在看似有效的 URL 上【英文标题】:NSURLUnsupportedURL -1002 on seemingly valid URL 【发布时间】:2015-10-15 10:27:17 【问题描述】:

我正在使用 Alamofire 在不属于我的网站上查询搜索。 我使用的代码在其他 URL 上工作得很好,只是不是这个。我在诸如“http://www.180.no/bransje/ADMINCONS-AS/1.htm”之类的 URL 上收到不受支持的 URL 响应。我打印了 URL 并只是 curld 它,效果很好。不知何故,这不适用于 Alamofire。我在做什么明显的错误?

代码:

   //Search 180.no for info page 
                                    let search180Query = "http://www.180.no/bransje/" + (company.name?.stringByReplacingOccurrencesOfString(" ", withString: "-"))! + "/1.htm"

                                    print(search180Query) //http://www.180.no/bransje/PORTRAIT-MILLION-HANDSHAKES-AS/1.htm
                                    Alamofire.request(.GET, search180Query)
                                            .responseData  searchResultPage in
                                            let searchResultPage = Kanna.html(html: searchResultPage.data!, encoding: NSUTF8StringEncoding)
                                            let searchResultID = searchResultPage!.xpath("//div[@class='found-company-container-grey foundItem'][1]//@id")
//ERROR: fatal error: unexpectedly found nil while unwrapping an Optional value
                                            print(searchResultID.text)
                                    

【问题讨论】:

你能显示你的 Alamofire 请求的代码吗?我使用 Alamofire 为这个 url 获得了 200 个 statusCode @Phoen1xUK 用代码更新问题。 【参考方案1】:

你可以尝试添加 stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) 带有网址?它可能会解决您的问题。

Swift 1.2 let search180Query = ("http://www.180.no/bransje/" + (company.name?.stringByReplacingOccurrencesOfString(" ", withString: "-"))! + "/1.htm").stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)

Swift 2.0 let search180Query = ("http://www.180.no/bransje/" + (company.name?.stringByReplacingOccurrencesOfString(" ", withString: "-"))! + "/1.htm" as NSString).stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)

【讨论】:

【参考方案2】:

我解决了这个问题。它与 Alamofire 无关,是我的 HTML 解析库 Kanna 无法读取 UTF8,因为该网站是用 Windows1502 编码的。以前从未遇到过,有趣的选择。

【讨论】:

以上是关于NSURLUnsupportedURL -1002 在看似有效的 URL 上的主要内容,如果未能解决你的问题,请参考以下文章