Я использую URLQueryItem
для кодирования значений запроса, но когда я передаю запросы к URLComponent
в свойствах url
, ключи запроса также кодируются.
var urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: false)
urlComponents.queryItems = [URLQueryItem]()
for (key,value) in parameters {
let queryItem = URLQueryItem(name: key,
value: "\(value)".addingPercentEncoding(withAllowedCharacters: .urlHostAllowed))
urlComponents.queryItems?.append(queryItem)
}
print("URLComponents Query Items:\n \(urlComponents.queryItems)")
print("URLComponents URL:\n \(urlComponents.url)")
Результат:
URLComponents Query Items:
Optional([per_page=10, filters[status]=Active])
URLComponents URL:
Optional(https://example.com/endpoint?per_page=10&filters%5Bstatus%5D=Active)
Как этого можно избежать? Я не хочу, чтобы имена запросов кодировались.