代码之家  ›  专栏  ›  技术社区  ›  vishnumanohar

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

  •  4
  • vishnumanohar  · 技术社区  · 7 年前

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

    -猛击:!FeTSs:未找到事件

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

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

    2 回复  |  直到 7 年前
        1
  •  4
  •   Jack Lenox    6 年前

    我自己也遇到过这个问题,在试图找到解决方案时感到相当沮丧,直到我发现对冒犯的角色进行反鞭笞已经足够好了!

    因此:

    curl -H "X-Med-Authorization:3b7N/FNDcEVX&v09n8O6jeUz9l!FeTSs;cSf3wz/mDsvzKGX" -X GET http://192.168.1.2:8383/dcCore/health/
    

    只需要成为:

    curl -H "X-Med-Authorization:3b7N/FNDcEVX&v09n8O6jeUz9l\!FeTSs;cSf3wz/mDsvzKGX" -X GET http://192.168.1.2:8383/dcCore/health/
    

    使用运行cURL时,可以通过查看输出来检查发送的标头是否正确 --verbose 旗帜我看到:

    > X-Med-Authorization:3b7N/FNDcEVX&v09n8O6jeUz9l!FeTSs;cSf3wz/mDsvzKGX
    

    没有反斜杠。繁荣我怀疑你现在已经找到了解决方法,但希望这能帮助其他人。

        2
  •  2
  •   Mohnish    5 年前

    您可以使用 $'' 窗体按原样传递参数。例如。

    curl-H$'appCookie=x-Abc!123' http://localhost

    裁判: wiki.bash-hackers.org www.gnu.org