Swift3 URL от URLComponents, как добавить ИЛИ элементы запроса

Я создаю URL из элементов запроса, используя URLComponents, и я хочу добавить некоторые элементы запроса как условия OR, а не AND. Я не уверен, какова правильная терминология для этого. Во всяком случае, я хотел бы следующее, примерно

website.com/things?param1=thing&param2=thing|param3=thing|param4=thing

но добавляя элементы запроса, я могу получить только

website.com/things?param1=thing&param2=thing&param3=thing&param4=thing

Моя цель состоит в том, чтобы проверить 3 различных параметра для термина, который я передаю, и вернуть любые результаты, которые совпадают с любым из 3. Если бы я строил URL-адрес из строки, я мог бы просто использовать конвейер вместо амперсанда (я думаю - пожалуйста, исправьте меня, если ошибаюсь), но я использую URLComponents и не уверен, как это сделать.

Возможно, я поступаю об этом неправильно. У меня нет тонны опыта с этим. Если это неправильный подход, пожалуйста, укажите мне в правильном направлении. Я не уверен, как правильно сформулировать этот вопрос, и это затрудняет поиск ответа.

1 ответ

Я не уверен, что правильная терминология для этого

Для этого нет терминологии; его не существует То, что вы пытаетесь сделать, это нестандартно. Не существует такой вещи, как элемент запроса ИЛИ условие. Стандартные разделители - точка с запятой и амперсанд, причем амперсанд используется практически повсеместно. Вы не можете использовать канал для разделения элементов запроса.

Таким образом, например, если вы вставляете website.com/things?param1=thing&param2=thing|param3=thing|param4=thing в анализаторе по адресу http://www.freeformatter.com/url-parser-query-string-splitter.html он не знает, что делать с каналами; он думает, что param2 должно быть thing|param3=thing|param4=thing,

Таким образом, URLComponents не собирается вставлять трубы для вас. Его цель и назначение - создать действительный URL, а вы пытаетесь создать недействительный.

Другие вопросы по тегам