【发布时间】:2018-09-20 17:29:39
【问题描述】:
假设我想使用curl 发出以下请求:
https://api.foobar.com/widgets?begin=2018-09-10T01:00:00+01:00&object={"name":"barry"}
该字符串的 URL 编码版本如下所示:
https://api.foobar.com/widgets?begin=2018-09-10T01%3A00%3A00%2B01%3A00&object=%7B%22name%22%3A%22barry%22%7D
当然,当我在命令行发出请求时,我更愿意查看外观更漂亮(但不是 URL 有效)的第一个版本。我正在考虑使用bash 脚本来拆分好版本的不同部分,对相关部分进行编码,然后将它们重新粘合在一起,这样我就不必担心了。
例如,在对?、& 和= 进行几轮简单拆分后,我可以轻松地得到:
https://api.foobar.com/widgetsbegin2018-09-10T01:00:00+01:00object{"name":"barry"}
然后,URL 对查询字符串的两个值进行编码并将它们重新粘合在一起。 我接受在查询字符串中出现任何& 和= 都会破坏这种方法。
还有什么我应该担心的可能会使这个想法变得特别愚蠢的吗?
【问题讨论】:
标签: bash url curl url-encoding url-parameters