Go URL的非转义查询参数
我想创建一个查询参数而不转义查询字符串 例如,我需要用内容创建一个查询参数Go URL的非转义查询参数,go,url-parameters,Go,Url Parameters,我想创建一个查询参数而不转义查询字符串 例如,我需要用内容创建一个查询参数q "before:{2019-12-24 19:57:34}" 所以URL是 https://android-review.googlesource.com/changes/?q=before:{2019-12-24 19:57:34} url正在转义特殊字符、空格和括号: https://android-review.googlesource.com/changes/?q=before%3A%7B2019-12-24
q
"before:{2019-12-24 19:57:34}"
所以URL是
https://android-review.googlesource.com/changes/?q=before:{2019-12-24 19:57:34}
url
正在转义特殊字符、空格和括号:
https://android-review.googlesource.com/changes/?q=before%3A%7B2019-12-24+19%3A57%3A34%7D
https://android-review.googlesource.com/changes/?q=before%3A%7B2019-12-24+19%3A57%3A34%7D
除了手动创建URL(当时没有查询参数)之外,我如何解决此问题?如果不希望对URL查询进行编码,请不要使用
Encode()
方法。相反,您可以自己直接设置RawQuery
值:
url,:=url.Parse(“https://android-review.googlesource.com/changes/")
url.RawQuery=“q=before:{2019-12-2419:57:34}”
fmt.Println(url)
输出:
https://android-review.googlesource.com/changes/?q=before:{2019-12-24 19:57:34}
然而,请记住,这是一个潜在灾难的配方,这取决于url最终的使用方式。根据RFC,特别是URL中的空间应该转义。看更多
如果与用例兼容,也许您希望实现自己的最小转义
https://android-review.googlesource.com/changes/?q=before:{2019-12-24 19:57:34}