Ahora puedo hacer una solicitud como sigue:

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"

Pero debe haber alguna manera mejor de hacer esto. He probado cosas como:

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>

y variaciones de los mismos (cadenas en lugar de los símbolos de las teclas, incluyendo { y }, haciendo de las teclas de mayúsculas y minúsculas, etc.) pero ninguna de las combinaciones que he intentado parecía funcionar. ¿Cuál es la sintaxis correcta aquí?


He probado la primera sugerencia que aparece a continuación. No trabajo. Para el registro, esto funciona:

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

pero esto no:

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

(donde he puesto version = ‘2.0’).

OriginalEl autor Amit Kumar Gupta | 2012-07-13

4 Comentarios

  1. 11

    Necesita especificar cadenas de consulta de parámetros con el símbolo :params. De lo contrario, pueden ser utilizados como encabezados.

    Ejemplo con parámetros:

    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'}
    Gracias por la respuesta. No parece funcionar para mí, sin embargo. Usted puede ver lo que he intentado en la edición a mi pregunta anterior.
    Que extraño. Cuando trato de los dos petición de arriba tengo dos idénticas peticiones. Estoy usando resonancia magnética 1.9.2-p318 y el resto del cliente 1.6.7.
    que parezca lo contrario. Yo no puedo insertar un encabezado parámetros 🙁 siempre de descanso-cliente (1.7.2) parecen considera que todos los parmeters como «params»

    OriginalEl autor Pafjo

  2. 3

    Tuve el mismo problema con el Resto-Cliente (1.7.2)
    Necesito poner los dos parámetros y los encabezados HTTP.

    He resuelto con esta sintaxis:

    params = {id: id, device: device, status: status}
    headers = {myheader: "giorgio"}
    
    RestClient.put url, params, headers

    Odio RestClient 🙂

    OriginalEl autor Giorgio Robino

  3. 1

    En resto-cliente de la api de google docs veo que headers es un Hash y si desea proporcionar tanto los encabezados y parámetros, entonces usted necesita para utilizar un :params clave dentro de la headers Hash. por ejemplo,


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

    OriginalEl autor akostadinov

  4. 0

    Lo que realmente necesita es URI.encode_www_form() método.

    uri = URI("https://survey.qualtrics.com/WRAPI/ControlPanel/api.php")
    request_params = {
      Request: 'getLegacyResponseData',
      ...
    }
    uri.query = URI.encode_www_form(request_params)
    response = RestClient.get(uri.to_s)

    OriginalEl autor ErgoLau

Dejar respuesta

Please enter your comment!
Please enter your name here