Я пытаюсь автоматизировать следующий завиток командной строки в Ruby, Curb:Делая сообщение с Рубином Снаряженным с базовой аутентификацией
curl -H "Content-Type:application/json" -X POST -d \
'{"approvalType": "auto",
"displayName": "Free API Product",
"name": "weather_free",
"proxies": [ "weatherapi" ],
"environments": [ "test" ]}' \
-u myname:mypass https://api.jupiter.apigee.net/v1/o/{org_name}/apiproducts
Где MyName, mypass и {орг имя} заполнены до запуска скрипта ,
Я не знаю, как сделать сообщение http с полезной нагрузкой JSON, используя базовую аутентификацию с помощью Ruby Curb. Я пробовал следующее:
require 'json'
require 'curb'
payload = '{"approvalType": "auto",
"displayName": "Test API Product Through Ruby1",
"name": "test_ruby1",
"proxies": [ "weather" ],
"environments": [ "test" ]}'
uri = 'https://api.jupiter.apigee.net/v1/o/apigee-qe/apiproducts'
c = Curl::Easy.new(uri)
c.http_auth_types = :basic
c.username = 'myusername'
c.password = 'mypassword'
c.http_post(uri, payload) do |curl|
curl.headers["Content-Type"] = ["application/json"]
end
puts c.body_str
puts c.response_code
В результате получается пустое тело и код ответа 415. Я проверил, что команда curl работает отлично.
Любая помощь будет принята с благодарностью, потому что она решит целый класс проблем, над которыми я сейчас работаю.
в curl есть команда -vv, чтобы показать подробный вывод, вы можете попробовать то же самое для бордюра? – poseid