2012-01-14 5 views
0

Je souhaite créer une requête sur une adresse URL et enregistrer les paramètres qu'une URL me renvoie en tant que JSON. Permettez-moi de cette façon, j'ai une URL comme ceci:Traitement de la réponse json dans les rails

http://version1.api.memegenerator.net/Instance_Create?username=userXXX&password=secret&languageCode=en&generatorID=45&imageID=20&text0=push un hipster dans les escaliers & text1 = regarde maintenant qui tumbling

Je veux envoyer les paramètres de sorte que le api me redonne mes données JSON ....

Je suis en train de créer un formulaire comme celui-ci ...

<%= form_for(@meme, :url => "memeapi", :remote => true) do |f| %> 
    <%= f.error_messages %> 
    <p> 
    <%= f.label :memeid %><br /> 
    <%= f.number_field :memeid %> 
    </p> 
    <p> 
    <%= f.label :imgid %><br /> 
    <%= f.number_field :imgid %> 
    </p> 
    <p> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    </p> 
    <p> 
    <%= f.label :text0 %><br /> 
    <%= f.text_field :text0 %> 
    </p> 
    <p> 
    <%= f.label :text1 %><br /> 
    <%= f.text_field :text1 %> 
    </p> 

    <p> 
    <%= f.label :user %><br /> 
    <%= f.text_field :user %> 
    </p> 
    <p><%= f.submit %></p> 
<% end %> 

Je suis assez sûr que la réponse est d'envoyer ce params au contrôleur, puis traiter la requête Quelque chose comme ça

def memeapi 
     @meme = Meme.new(params[:meme]) 
     @apiurl = "version1.api.memegenerator.net/Instance_Create?username=apigen&password=koalass&languageCode=en&generatorID=#{@meme.memeid}&imageID=#{@meme.imgid}&text0=#{@meme.text0}&text1=#{@meme.text1}" 
     redirect_to @apiurl 
     @meme.url = "#{@meme.name}-#{@meme.id}" 

    end 

Je n'arrive pas à comprendre comment y parvenir. Merci d'avance.

Répondre

0

require 'net/http'

url = "http://version1.api.memegenerator.net/Instance_Create?username=apigen&password=koalass&languageCode=en&generatorID=#{@meme.memeid}&imageID=#{@meme.imgid}&text0=#{@meme.text0}&text1=#{@meme.text1}" 
resp = Net::HTTP.get_response(URI.parse(url)) 
data = resp.body 
# we convert the returned JSON data to native Ruby 
# data structure - a hash 
result = ActiveSupport::JSON.decode(data) 
+0

Ok, mais comment puis-je voir le get_repsonse fonctionne? Je peux mettre en forme la variable résultat, comment puis-je voir ce qui me redonne? –

+0

http://www.ruby-doc.org/stdlib-1.9.3/libdoc/net/http/rdoc/Net/HTTPResponse.html qui est un objet de réponse, vous pouvez également gérer le statut et le message – Fivell

Questions connexes