Как отправить данные в post-запросе с помощью RestClient
Я пытаюсь имитировать запрос curl с помощью драгоценного камня RestClient Ruby, и до сих пор у меня было много проблем с отправкой полезной нагрузки. Мой запрос curl выглядит примерно так
curl URL -X POST -u API_KEY -d '{"param_1": "1"}'
Я пытался воспроизвести это с помощью RestClient, используя что-то вроде этого:
RestClient::Request.execute(method: :post, url: URL, user: API_KEY, payload: {"param_1" => "1"})
увы, я продолжаю получать ошибки 400 - Bad запросов при этом. Я посылаю данные не в ту сторону? Должен ли я использовать что-то другое чем полезная?
3 ответов
изменения:
payload: {"param_1" => "1"})
в:
payload: '{"param_1": "1"})'
кроме того, указать headers
.
Итак, это будет:
RestClient::Request.execute(method: :post,
url: 'your_url',
user: 'API_KEY',
payload: '{"param_1": "1"}',
headers: {"Content-Type" => "application/json"}
)
Просто Измените:
payload: {"param_1" => "1"}
В:
payload: {"param_1" => "1"}.to_json
Итак, тогда это становится:
RestClient::Request.execute(method: :post,
url: 'your_url',
user: 'API_KEY',
payload: {"param_1" => "1"}.to_json,
headers: {"Content-Type" => "application/json"}
)
оказывается, мне пришлось добавить аргумент, чтобы указать, что мои данные были в формате JSON. Правильный ответ был примерно такой::
RestClient::Request.execute(method: :post, url: URL, user: API_KEY, payload: '{"param_1": "1"}', headers: {"Content-Type" => "application/json"})