我正在尝试将 URL 编码的多行字符串作为 GET 调用的参数传递给现有的 Web 服务。我认为我已经非常接近解决方案了,如下所示:
echo -e 'p_message=a\nb\nc\n' | curl -v -G --data-urlencode @- http://localhost/service
> GET /service?p_message%3Da%0Ab%0Ac%0A%0A HTTP/1.1
似乎唯一出错的是 '=' 被 url 编码了。我正在运行最新版本的 curl (7.33)。
答案1
明白了,以下方法似乎有效:
echo -e "a\nb\nc\n'" | curl -v -G --data-urlencode p_message@- http://localhost/service
> GET /service?p_message=a%0Ab%0Ac%0A%27%0A HTTP/1.1