如何对curl命令的数据进行urlencode?

2024-01-06

我正在尝试编写一个用于测试的 bash 脚本,该脚本采用一个参数并将其通过curl发送到网站。我需要对值进行 url 编码,以确保特殊字符得到正确处理。做这个的最好方式是什么?

到目前为止,这是我的基本脚本:

#!/bin/bash
host=${1:?'bad host'}
value=$2
shift
shift
curl -v -d "param=${value}" http://${host}/somepath $@

Use curl --data-urlencode; from man curl:

此帖子数据,与其他类似--data选项,但执行 URL 编码除外。为了符合 CGI 标准,<data>部分应以名称开头,后跟分隔符和内容规范。

用法示例:

curl \
    --data-urlencode "paramName=value" \
    --data-urlencode "secondParam=value" \
    http://example.com

See 手册页 https://curl.haxx.se/docs/manpage.html#--data-urlencode了解更多信息。

这需要curl 7.18.0 或更高版本(2008 年 1 月发布) https://curl.haxx.se/changes.html#7_18_0. Use curl -V检查您拥有哪个版本。

您也可以编码请求参数 https://curl.haxx.se/docs/manpage.html#-G:

curl --get \
    --data-urlencode "p1=value 1" \
    --data-urlencode "p2=value 2" \
    http://example.com
    # http://example.com?p1=value%201&p2=value%202
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对curl命令的数据进行urlencode? 的相关文章

随机推荐