如何转义curl命令头中的特殊字符

vis*_*har 4 curl escaping http-headers

我想通过 REST 调用来卷曲 URL。该调用需要与其一起发送授权标头。授权标头中包含一个 !(撇号)字符。当我发送它时,它会抛出以下错误。

-bash: !FeTSs: 未找到事件

卷曲-H“X-Med-授权:3b7N/FNDcEVX&v09n8O6jeUz9l!FeTSs;cSf3wz/mDsvzKGX”-X GET http://192.168.1.2:8383/dcCore/health/

我搜索到了在帖子数据中转义特殊字符的答案,但在标题中却没有。

Jac*_*nox 6

我自己也遇到过这个问题,并在尝试找到解决方案时感到相当沮丧,直到我发现反斜杠有问题的字符就足够了!

所以:

curl -H "X-Med-Authorization:3b7N/FNDcEVX&v09n8O6jeUz9l!FeTSs;cSf3wz/mDsvzKGX" -X GET http://192.168.1.2:8383/dcCore/health/
Run Code Online (Sandbox Code Playgroud)

只需要成为:

curl -H "X-Med-Authorization:3b7N/FNDcEVX&v09n8O6jeUz9l\!FeTSs;cSf3wz/mDsvzKGX" -X GET http://192.168.1.2:8383/dcCore/health/
Run Code Online (Sandbox Code Playgroud)

当使用该标志运行 cURL 时,您可以通过查看输出来检查是否发送了正确的标头--verbose。在那我看到:

> X-Med-Authorization:3b7N/FNDcEVX&v09n8O6jeUz9l!FeTSs;cSf3wz/mDsvzKGX
Run Code Online (Sandbox Code Playgroud)

没有反斜杠。繁荣。我怀疑您现在已经找到了解决方案,但希望这对以后的人有所帮助。