34

私は残りのクライアントgemを持っており、次のようなリクエストを定義しています。

url = 'http://someurl'
request =  {"data" => data}.to_json
response = RestClient.post(url,request,:content_type => :json, :accept => :json)

ただし、HTTPヘッダーを何かに設定する必要があります。たとえば、APIキー。これは、カールで次のように行うことができます。

curl -XHEAD -H x-auth-user: myusername -H x-auth-key: mykey "url"

ルビーでこれを行うための最良の方法は何ですか?この宝石を使用していますか?または、手動で実行して、より詳細に制御することはできますか。

4

4 に答える 4

51

3番目のパラメーターはヘッダーハッシュです。

あなたはあなたが望むことをすることができます:

response = RestClient.post( 
  url, 
  request,
  :content_type => :json, :accept => :json, :'x-auth-key' => "mykey")
于 2012-08-28T14:40:23.310 に答える
22

これもできます

RestClient::Request.execute(
   :method => :get or :post,
   :url => your_url,
   :headers => {key => value}
)
于 2013-11-29T06:46:03.043 に答える
4

Rest-Client(1.7.2)でも同じ問題が発生しました。paramsとHTTPヘッダーの両方を配置する必要があります。

私はこの構文で解決しました:

params = {id: id, device: device, status: status}
headers = {myheader: "giorgio"}

RestClient.put url, params, headers

私はRestClientが嫌いです:-)

于 2014-11-28T11:00:00.387 に答える
0

許可されていない場合PUTは、のヘッダーで渡すことができPOSTます。太字のヘッダー。これは私のために働いた:

act_resp = RestClient.post url, req_param, **:content_type => :json, :method => :put**

于 2016-05-26T07:57:34.470 に答える