我想显示来自这个 URL 的数据:
http://www.football-data.org/soccerseasons/351/fixtures?timeFrame=n14
我的 baseURL 是 let baseUrl = NSURL(string: "http://www.football-data.org")!
,
所以我的请求是 let request = NSMutableURLRequest(URL: baseUrl.URLByAppendingPathComponent("soccerseasons/"+ "\(league.id)"+ "/fixtures?timeFrame=n14"))
但是 ?timeFrame=n14
不起作用。
有人知道如何解决这个问题以便我可以显示该数据吗?
最佳答案
问题是 ?timeFrame=n14
中的问号被视为 URL 的一部分
路径,因此 HTML 转义为 %3F
。这应该有效:
let baseUrl = NSURL(string: "http://www.football-data.org")!
let url = NSURL(string: "soccerseasons/" + "\(league.id)" + "/fixtures?timeFrame=n14", relativeToURL:baseUrl)!
let request = NSMutableURLRequest(URL: url)
或者,使用 NSURLComponents
,它允许您从各个组件连续构建 URL(为简洁起见省略了错误检查):
let urlComponents = NSURLComponents(string: "http://www.football-data.org")!
urlComponents.path = "/soccerseasons/" + "\(league.id)" + "/fixtures"
urlComponents.query = "timeFrame=n14"
let url = urlComponents.URL!
let request = NSMutableURLRequest(URL: url)
Swift 3 更新:
var urlComponents = URLComponents(string: "http://www.football-data.org")!
urlComponents.path = "/soccerseasons/" + "\(league.id)" + "/fixtures"
urlComponents.query = "timeFrame=n14"
let url = urlComponents.url!
var request = URLRequest(url: url)
关于swift - 如何将 ?id=1 之类的内容附加到 NSMutableURLRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26957166/