我已经尝试过几乎可以想到的单引号,双引号和反斜杠的每种组合。如果有人可以指出我在做什么错,那将不胜感激。
run_locally do
execute "\\curl -X POST \"https://api.cloudflare.com/client/v4/zones/#{fetch(:cloudflare_zone)}/purge_cache\" \
-H \"X-Auth-Email: test@example.com\" \
-H \"X-Auth-Key: #{fetch(:cloudflare_api)}\" \
-H \"Content-Type: application/json\" \
--data {\"purge_everything\":true}\""
end
我的capistrano脚本每次击中时都会死亡。我觉得那是最后一行,但我不确定为什么。
编辑:我已经克服了这个错误,但是现在从Cloudflare中获取了“请求主体中格式错误的JSON”。
run_locally do
execute "\\curl -X POST \"https://api.cloudflare.com/client/v4/zones/#{fetch(:cloudflare_zone)}/purge_cache\" \
-H \"X-Auth-Email: test@example.com\" \
-H \"X-Auth-Key: #{fetch(:cloudflare_api)}\" \
-H \"Content-Type: application/json\" \
--data \"{\"purge_everything\":true}\" "
end
因此由于某种原因,它不喜欢我的--data部分。
答案 0 :(得分:0)
我无法直接为您检查此问题,但是您可以使用其他字符串结构以更清晰的方式执行此操作,希望可以为您突出显示该问题。
run_locally do
execute %{curl -X POST "https://api.cloudflare.com/client/v4/zones/#{fetch(:cloudflare_zone)}/purge_cache" \
-H "X-Auth-Email: test@example.com" \
-H "X-Auth-Key: #{fetch(:cloudflare_api)}" \
-H "Content-Type: application/json" \
--data '{"purge_everything":true}'}
end
可能是JSON中嵌套的双引号引起了问题。