Swift3 URL от URLComponents, как добавить ИЛИ элементы запроса
Я создаю URL из элементов запроса, используя URLComponents, и я хочу добавить некоторые элементы запроса как условия OR, а не AND. Я не уверен, какова правильная терминология для этого. Во всяком случае, я хотел бы следующее, примерно
website.com/things?param1=thing¶m2=thing|param3=thing|param4=thing
но добавляя элементы запроса, я могу получить только
website.com/things?param1=thing¶m2=thing¶m3=thing¶m4=thing
Моя цель состоит в том, чтобы проверить 3 различных параметра для термина, который я передаю, и вернуть любые результаты, которые совпадают с любым из 3. Если бы я строил URL-адрес из строки, я мог бы просто использовать конвейер вместо амперсанда (я думаю - пожалуйста, исправьте меня, если ошибаюсь), но я использую URLComponents и не уверен, как это сделать.
Возможно, я поступаю об этом неправильно. У меня нет тонны опыта с этим. Если это неправильный подход, пожалуйста, укажите мне в правильном направлении. Я не уверен, как правильно сформулировать этот вопрос, и это затрудняет поиск ответа.
1 ответ
Я не уверен, что правильная терминология для этого
Для этого нет терминологии; его не существует То, что вы пытаетесь сделать, это нестандартно. Не существует такой вещи, как элемент запроса ИЛИ условие. Стандартные разделители - точка с запятой и амперсанд, причем амперсанд используется практически повсеместно. Вы не можете использовать канал для разделения элементов запроса.
Таким образом, например, если вы вставляете website.com/things?param1=thing¶m2=thing|param3=thing|param4=thing
в анализаторе по адресу http://www.freeformatter.com/url-parser-query-string-splitter.html он не знает, что делать с каналами; он думает, что param2
должно быть thing|param3=thing|param4=thing
,
Таким образом, URLComponents не собирается вставлять трубы для вас. Его цель и назначение - создать действительный URL, а вы пытаетесь создать недействительный.