![](/img/trans.png)
[英]How can I get the value in a hash of the response of POST request on Ruby?
[英]How can I get the response of request of API on ruby?
我目前正在做一个项目,我必须制定一个特定的方法。 通过使用这种方法,我想得到 Json 的结果。 url 完全没问题,当我被 Curl -get 命令击中时,它返回 Json。 它返回类似这样的内容 [{id: "~~~", name: "~~~"}, {id: "===", name: "==="}]
def api(url)
uri = URI.parse(url)
req = Net::HTTP::Get.new(uri.request_uri)
https = Net::HTTP.new(uri.host, uri.port)
https.use_ssl = true
res = https.request(req)
res.to_json ( i also tried res.body)
end
我想解决这个问题,但我没有发现问题。
*添加
我刚刚发现 res = https.request(req) 不起作用。 print res 什么也不返回。
在这个 class 中,我添加了这些要求,但这里可能有问题。
require 'json'
require 'net/http'
require 'uri'
您可以解析响应正文:
JSON.parse(res.body)
从纯 IRB session 中的 JSONPlacehoder 服务获取结果的示例。
irb(main):001:0> require 'json'
=> true
irb(main):002:0> require 'net/http'
=> true
irb(main):003:0> require 'uri'
=> false
irb(main):004:1* def api(url)
irb(main):005:1* uri = URI.parse(url)
irb(main):006:1* req = Net::HTTP::Get.new(uri.request_uri)
irb(main):007:1* https = Net::HTTP.new(uri.host, uri.port)
irb(main):008:1* https.use_ssl = true
irb(main):009:1* res = https.request(req)
irb(main):010:1* JSON.parse(res.body)
irb(main):011:0> end
=> :api
irb(main):012:0> url = 'https://jsonplaceholder.typicode.com/todos'
irb(main):013:0> api(url)
=> [{"userId"=>1, "id"=>1, "title"=>"delectus aut autem", "completed"=>false}, {"userId"=>1, "id"=>2, "title"=>"quis ut nam facilis et officia qui", "completed"=>false}, {"userId"=>1, "id"=>3, "title"=>"fugiat veniam minus", "completed"=>false}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.