我今天遇到了一个令人讨厌的问题。我正在做一个应用程序,它查询自制的API并解析答案,这是一个非常经典的应用程序。
但是由于我收到了大量数据,我想对我的请求应用一个过滤器“<=”和“>=”,但它不起作用。得到的URL对象是
nil
.
代码如下:
print(request.url) // prints the expected URL
var uerel = URL(string: request.url)
print(uerel) // prints 'nil'
输出:
https://XXXXXXX.eu/YYYYYY?my_filter_id=5b057e27443318329d694d64&date>=2016-01-01T08:00:00.000Z&date<=2016-01-01T20:00:00.000Z
nil
有趣的是如果我移除
<
以及
>
它就像一个魅力。
我试着在
official doc for URL object
但它似乎不需要特殊的编码。?
我还查看了上述官方文件中提到的RFC1808,这些特殊字符标记为
punctuation
所以我相信把它们放到一个URL中是可以的。
问题来自哪里?