如何将类似?id = 1的内容附加到NSMutableURLRequest

STh*_*Fox 7 parameters nsmutableurlrequest swift

我想显示此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不起作用.

任何人都知道如何解决这个问题,以便我可以显示该数据?

Mar*_*n R 17

问题是,问号in ?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)
Run Code Online (Sandbox Code Playgroud)

或者,使用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)
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)