J'ai la gemme cliente restante et je définis une demande comme celle-ci:
url = 'http://someurl'
request = {"data" => data}.to_json
response = RestClient.post(url,request,:content_type => :json, :accept => :json)
Cependant, je dois définir l'en-tête HTTP sur quelque chose. Par exemple une clé API. Ce qui pourrait être fait en boucle comme:
curl -XHEAD -H x-auth-user: myusername -H x-auth-key: mykey "url"
Quelle est la meilleure façon de faire cela en rubis? En utilisant ce bijou? Ou puis-je le faire manuellement pour avoir plus de contrôle.
Le troisième paramètre est le hash des en-têtes .
Vous pouvez faire ce que vous voulez en:
response = RestClient.post(
url,
request,
:content_type => :json, :accept => :json, :'x-auth-key' => "mykey")
Vous pouvez aussi faire ça
RestClient::Request.execute(
:method => :get or :post,
:url => your_url,
:headers => {key => value}
)
J'ai eu le même problème avec Rest-Client (1.7.2). Je dois mettre les paramètres et les en-têtes HTTP.
J'ai résolu avec cette syntaxe:
params = {id: id, device: device, status: status}
headers = {myheader: "giorgio"}
RestClient.put url, params, headers
Je déteste RestClient :-)
Si PUT
n'est pas autorisé, nous pouvons le passer dans l'en-tête de POST
. En-têtes en gras. Cela a fonctionné pour moi:
act_resp = RestClient.post url, req_param, **:content_type => :json, :method => :put*
*