我想创建一个api url的查询,并保存URL给我回来的params作为JSON。 让我这样说吧,我有一个这样的网址:
http://version1.api.memegenerator.net/Instance_Create?username=userXXX&password=secret&languageCode=en&generatorID=45&imageID=20&text0=push楼梯上的一个时髦人员&text; = 1现在看看谁在翻滚
我想发送参数,以便api将我的数据作为json ....
我正在尝试创建这样的表单......
<%= 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 %>
我很确定答案是将这个参数发送给控制器然后处理这样的请求
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
我无法弄清楚如何实现这一目标。 提前致谢。
答案 0 :(得分:0)
要求'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)