NSURLUnsupportedURL -1002 貌似有效URL

NSURLUnsupportedURL -1002 on seemingly valid URL

我正在使用 Alamofire 在不属于我的网站上查询搜索。 我使用的代码在其他 URL 上工作得很好,但不是这个。我在 URL 上收到不受支持的 URL 响应,例如“http://www.180.no/bransje/ADMINCONS-AS/1.htm”。我打印了 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)
                                    }

你可以尝试添加 stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) 与 Url ?。它可能会解决您的问题。

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

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

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