Контекст:
Я использую HTTParty для выполнения запроса POST на API, который принимает application/json
Мое тело что-то в этом роде (как хеш)
{:contact_id =>"12345679",
:items=> [
{:contact_id=>"123456789", :quantity=>"1", :price=>"0"},
{:contact_id=>"112315475", :quantity=>"2", :price=>"2"}
]}
Проблема:
Когда я пишу следующий код, это работает:
HTTParty.post('https://some-url', body: content.to_json, headers: { "Content-Type" => "application/json" } )
Но при изменении только символа =>
в заголовках на символ :
, это не работает (API отвечает, что некоторые параметры отсутствуют)
HTTParty.post('https://some-url', body: content.to_json, headers: { "Content-Type": "application/json" } )
Вопрос:
Почему изменение "Content-Type" => "application/json"
на "Content-Type": "application/json"
приводит к ошибкам?
Я думаю, что это что-то с хэшем Ruby, что я не понимаю.
Редактировать:
Я думаю, что мой вопрос не является дубликатом Почему этот ключ строки в хэшепреобразован в символ?
Для потребителей HTTPart важно знать, что HTTParty не принимает символы для заголовков , а только строки .
Для получения дополнительной информации см. Content-Type Не отправляется, когда я пытаюсь использовать новый синтаксис Hash для заголовков и Передача headers и параметры запросов в HTTparty
Спасибо @ anothermh