看似有效的URL上的NSURLUnsupportedURL -1002

时间:2015-10-15 10:27:17

标签: swift swift2 nsurl alamofire

我使用Alamofire在我不拥有的网站上查询搜索。 我正在使用的代码在其他URL上运行得很好,而不是这个。我在" http://www.180.no/bransje/ADMINCONS-AS/1.htm"等网址上获得了不受支持的网址回复。我打印了网址,只是curl d,它运行正常。不知怎的,这对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)
                                    }

2 个答案:

答案 0 :(得分:1)

您可以尝试添加吗? {0}与网址有关。它可以解决你的问题。

Swift 1.2 stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)

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

答案 1 :(得分:0)

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