4

現在、次のようにリクエストできます。

user = 'xxx'  
token = 'xxx'  
survey_id = 'xxx'  
response = RestClient.get "https://survey.qualtrics.com/WRAPI/ControlPanel/api.php?Request=getLegacyResponseData&User=#{user}&Token=#{token}&Version=2.0&SurveyID=#{survey_id}&Format=XML"

しかし、これを行うためのより良い方法があるはずです。私は次のようなことを試しました:

response = RestClient.get "https://survey.qualtrics.com/WRAPI/ControlPanel/api.php", :Request => 'getLegacyResponseData', :User => user, :Token => token, :Version => '2.0', :SurveyID => survey_id, :Format => 'XML'</code>

およびそのバリエーション({および}を含むキーの記号の代わりに文字列、キーを小文字にするなど)が、私が試した組み合わせはどれも機能していないようでした. ここで正しい構文は何ですか?


以下の最初の提案を試しました。うまくいきませんでした。記録のために、これは機能します:

surveys_from_api = RestClient.get "https://survey.qualtrics.com/WRAPI/ControlPanel/api.php?Request=getSurveys&User=#{user}&Token=#{token}&Version=#{version}&Format=JSON"

しかし、これはしません:

surveys_from_api = RestClient.get "https://survey.qualtrics.com/WRAPI/ControlPanel/api.php", :params => {:Request => 'getSurveys', :User => user, :Token => token, :Version => version, :Format => 'JSON'}

(ここでversion = '2.0'を設定しました)。

4

4 に答える 4

13

シンボル:paramsを使用してクエリ文字列パラメータを指定する必要があります。それ以外の場合は、ヘッダーとして使用されます。

paramsの例:

response = RestClient.get "https://survey.qualtrics.com/WRAPI/ControlPanel/api.php", :params => {:Request => 'getLegacyResponseData', :User => user, :Token => token, :Version => '2.0', :SurveyID => survey_id, :Format => 'XML'}
于 2012-07-14T06:37:26.940 に答える
3

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

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

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

RestClient.put url, params, headers

私はRestClientが嫌いです:-)

于 2014-11-28T10:56:23.890 に答える
1

rest-client api docsでは、ヘッダーとパラメーターの両方を提供する場合headersは、ハッシュ内でキーHashを使用する必要があります。例えば:paramsheaders

headers = { h1 => v1, h2 => v2, :params => {my params} }

于 2015-07-06T13:05:12.813 に答える