Swift 不需要的 URL 百分比编码
Swift unwanted URL percent encoding
我正在尝试格式化 URL 以用于访问 API。 api 的文档指定了一个 URL,其中包含“[”和“]”字符。当我从 Swift 中的字符串创建 URL 时,它会添加百分比编码并将这些字符更改为“%5B”和“%5D”。
如何告诉 swift 不要对这些字符进行百分比编码?谢谢!
func attemptPubgIDLookup (playerName: String, completion: @escaping (String) -> Void) {
let region = "pc-na"
let urlString = "https://api.playbattlegrounds.com/shards/" + region + "/players?filter[playerNames]=" + playerName
let finalUrl = URL(string:urlString)
if let finalUrl = finalUrl {
var urlRequest = URLRequest(url: finalUrl)
urlRequest.httpMethod = HTTPMethod.get.rawValue
urlRequest.addValue(pubgApiKey, forHTTPHeaderField: "Authorization: Bearer")
urlRequest.addValue("application/vnd.api+json", forHTTPHeaderField: "Accept")
Alamofire.request(urlRequest)
.responseJSON(completionHandler: { (response) in
debugPrint(response)
})
}
}
这就是你想要的。当服务器收到您的请求时,它将解码 URL...
%5B is '[' and %5D is ']'
这称为 percent encoding,用于对 url 参数值中的特殊字符进行编码。
我正在尝试格式化 URL 以用于访问 API。 api 的文档指定了一个 URL,其中包含“[”和“]”字符。当我从 Swift 中的字符串创建 URL 时,它会添加百分比编码并将这些字符更改为“%5B”和“%5D”。
如何告诉 swift 不要对这些字符进行百分比编码?谢谢!
func attemptPubgIDLookup (playerName: String, completion: @escaping (String) -> Void) {
let region = "pc-na"
let urlString = "https://api.playbattlegrounds.com/shards/" + region + "/players?filter[playerNames]=" + playerName
let finalUrl = URL(string:urlString)
if let finalUrl = finalUrl {
var urlRequest = URLRequest(url: finalUrl)
urlRequest.httpMethod = HTTPMethod.get.rawValue
urlRequest.addValue(pubgApiKey, forHTTPHeaderField: "Authorization: Bearer")
urlRequest.addValue("application/vnd.api+json", forHTTPHeaderField: "Accept")
Alamofire.request(urlRequest)
.responseJSON(completionHandler: { (response) in
debugPrint(response)
})
}
}
这就是你想要的。当服务器收到您的请求时,它将解码 URL...
%5B is '[' and %5D is ']'
这称为 percent encoding,用于对 url 参数值中的特殊字符进行编码。