swift - 如何将 ?id=1 之类的内容附加到 NSMutableURLRequest

标签 swift parameters nsmutableurlrequest

我想显示来自这个 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/

相关文章:

ios - NSMutableUrlRequest 没有为 HTTP 请求发送正确的参数

iphone - NSMutableURLRequest 偶尔出现 "no boundary"错误

swift - 如何快速从高度确定文本的字体大小?

swift - 在 iOS 10 Widget 和 Apple Watch 之间共享数据

python - 为什么将函数作为参数传递会被认为是 'powerful'?

javafx - 传递参数JavaFX FXML

mysql - 存储过程返回空值

ios - 从 Swift 5 iOS 应用程序进行 Mailchimp API 调用时“API key 丢失”

swift - 如何在没有 "Sequence doesn' t 包含任何元素的情况下将 Maybe 转换为 Single"

swift - 如何按日期明智地获取Apple健康数据?