【问题标题】:Help with a curl command and reading from a file帮助使用 curl 命令并从文件中读取
【发布时间】:2011-05-23 06:21:58
【问题描述】:

我有一个 curl 命令需要发布帖子并将我的 ssh 密钥作为参数之一发送,我使用的命令如下所示:

SSH_KEY=`cat ~/.ssh/id_rsa.pub`;
curl -d "login=username&token=apikey&title=test&key=$SSH_KEY" http://github.com/api/v2/yaml/repos/key/username/somerepo/add

问题是 ssh 键中有一个+ 并且字符串在此时终止,我该如何避免这种情况?

【问题讨论】:

    标签: bash shell scripting curl github


    【解决方案1】:

    显然在 7.18.0 版本中 curl 添加了 --data-urlencode 选项:

    curl --data-urlencode "login=username&token=apikey&title=test&key=$SSH_KEY" http://github.com/api/v2/yaml/repos/key/username/somerepo/add
    

    【讨论】:

      【解决方案2】:

      要发送文件,请在文件名前添加“@”

      curl -d "login=username&token=apikey&title=test&key=@~/.ssh/id_rsa.pub" \
      http://github.com/api/v2/yaml/repos/key/username/somerepo/add
      

      希望这会有所帮助。

      【讨论】:

        【解决方案3】:

        使用--data-urlencode 代替-d

        【讨论】:

          【解决方案4】:
          urlencode()
          

          我认为你在寻找什么?您可以通过在字符串上使用 urlencode() 自动替换特殊字符。

          http://php.net/manual/en/function.urlencode.php 了解更多信息。

          还有更多信息:curl.haxx.se/docs/manpage.html 进行页面搜索:urlencode

          希望有帮助:)

          【讨论】:

            猜你喜欢
            • 2014-08-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多