我正在尝试在 bash 中使用 curl 来下载网页,但&
URL 中的符号没有被解释为我想要的字符。关于如何让 bash 相信该符号&
只是一个无聊的角色并且没有什么特别之处的任何想法?
问问题
100895 次
7 回答
150
将整个 URL 放在双引号内应该可以解决您的问题。
于 2012-11-12T07:00:19.360 回答
53
curl "http://www.example.com?m=method&args=1"
您是否使用 & 作为 GET URL 的分隔符?还是在一条数据中?
如果它在数据中,则必须将其编码为 HTML 字符,如果不是,则用引号括起来。
的编码&
应该%26
在 URL 中。
curl "http://www.example.com?m=this%26that
于 2012-11-12T07:00:52.033 回答
29
在符号周围加上单引号&
似乎有效。也就是说,使用http://www.example.com/page.asp?arg1=${i}'&'arg2=${j}
curl 之类的 URL 会返回请求的网页。
于 2012-11-12T15:28:12.333 回答
19
您可以使用 -d 参数在 POST 请求中指定 http url 参数,而不是尝试转义“&”字符,如下所示:
curl -X POST http://www.example.com \
-d arg1=this \
-d arg2=that
如果请求是 GET,那么您还应该添加 -G 选项,它告诉 curl 使用 GET 请求发送数据。
curl -X GET -G http://www.example.com \
-d arg1=this \
-d arg2=that
于 2016-08-05T15:58:12.933 回答
11
您可以%26
改用&
. 实体代码将正常工作。
于 2015-02-25T18:33:17.623 回答
2
使用--url
带双引号的参数对我有用
于 2020-06-11T02:57:07.410 回答
1
最简单的方法:
curl -X GET -G http://example.com -d var1=$1 -d var2=$2
于 2020-11-18T09:48:26.633 回答