猿问

如何为curl命令urlencode数据?

如何为curl命令urlencode数据?

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

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

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


慕尼黑8549860
浏览 2724回答 3
3回答

撒科打诨

在bash脚本的第二行使用Perl的URI::Escape模块和uri_escape函数:...value="$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "$2")"...编辑:修复引用问题,如Chris Johnsen在评论中所建议的那样。谢谢!
随时随地看视频慕课网APP
我要回答