在Chef Recipe中将cURL请求转换为http_request

时间:2018-05-29 13:58:41

标签: curl sonarqube chef chef-recipe

有人可以帮助我将以下cURL请求转换为http_request

curl -X POST -u admin:admin -F backup=@'/tmp/backup2.xml' -v #{sonarqube_rest_uri}/qualityprofiles/restore 

我的Vagrant box&t; / tmp文件夹中有backup2.xml。我可以通过编写bash脚本来发送请求,但我希望使用http_request资源更清晰的方法。

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

http_request 'Post backup xml' do
  headers ({
    'Content-Type' => 'multipart/form-data',
    'AUTHORIZATION' => "Basic #{Base64.encode64('admin:admin')}"
  })
  action :post
  url "#{sonarqube_rest_uri}/qualityprofiles/restore"
  message ::File.read("/tmp/backup2.xml")
end

-F标志表示您需要multipart/form-data标头。您还需要-u admin:admin的授权标题,而Chef文档的标识版本为example。行动和网址非常简单。最后,使用::File.read将消息文件的内容作为消息阅读。

但是,有关multipart/form-data内容类型的similar question表示此类内容可能不适用于http_request。不过,希望这可以帮助您了解如何将curl请求转换为http_request