Да, вы можете создать процентную часть запроса, используя
ак я добавляю параметры запроса к базовому URL:
let baseURL: URL = ...
let queryParams: [AnyHashable: Any] = ...
var components = URLComponents(url: baseURL, resolvingAgainstBaseURL: false)
components?.queryItems = queryParams.map { URLQueryItem(name: $0, value: "\($1)") }
let finalURL = components?.url
Проблема возникает, когда одно из значений содержит+
условное обозначение. По какой-то причине это не закодировано в%2B
в последнем URL, вместо этого он остается+
, Если я сам кодирую и передаю%2B
, NSURL
кодирует%
и «плюс» становится%252B
.
Вопрос в том, как я могу иметь%2B
в случаеNSURL
?
Постскриптум Я знаю, у меня даже не было бы этой проблемы, если бы я сам создал строку запроса, а затем просто передал результатNSURL
конструкторinit?(string:)
.