来自URLComponents的Swift3 URL,如何添加OR查询项

时间:2017-02-14 02:07:29

标签: swift url swift3 nsurl nsurlcomponents

我使用URLComponents从查询项构建URL,我想将一些查询项添加为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 个答案:

答案 0 :(得分:2)

  

我不确定这个的正确术语是什么

没有术语;它不存在。你要做的是非标准的。没有查询项OR条件。标准分离器是分号和符号,几乎普遍使用和号。您无法使用管道来分隔查询项。

因此,例如,如果您将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,并且你试图制作一个无效的URL。