Ответ 1
Третий параметр - хеширование заголовков.
Вы можете делать то, что хотите:
response = RestClient.post(
url,
request,
:content_type => :json, :accept => :json, :'x-auth-key' => "mykey")
У меня есть остаточный клиентский камень, и я определяю такой запрос:
url = 'http://someurl'
request = {"data" => data}.to_json
response = RestClient.post(url,request,:content_type => :json, :accept => :json)
Однако мне нужно настроить HTTP-заголовок на что-то. Например, ключ API. Что можно сделать в curl как:
curl -XHEAD -H x-auth-user: myusername -H x-auth-key: mykey "url"
Какой лучший способ сделать это в рубине? Используя этот камень? Или я могу сделать это вручную, чтобы иметь больше контроля.
Третий параметр - хеширование заголовков.
Вы можете делать то, что хотите:
response = RestClient.post(
url,
request,
:content_type => :json, :accept => :json, :'x-auth-key' => "mykey")
Вы также можете сделать это
RestClient::Request.execute(
:method => :get or :post,
:url => your_url,
:headers => {key => value}
)
У меня была та же проблема с Rest-Client (1.7.2) Мне нужно поставить оба параметра и HTTP-заголовки.
Я решил с этим синтаксисом:
params = {id: id, device: device, status: status}
headers = {myheader: "giorgio"}
RestClient.put url, params, headers
Я ненавижу RestClient: -)
Если PUT
не разрешено, мы можем передать его в заголовок POST
. Заголовки выделены жирным шрифтом. Это сработало для меня:
act_resp = RestClient.post url, req_param, **:content_type => :json, :method => :put*
*