尝试在Udemy的API中提取字段“searching_count”,但我不确定语法。
如果有人能指出我正确的方向,我们将非常感激。我正在使用Sinatra并使用net / http解析api请求。
require 'sinatra'
require 'net/http'
require 'json'
require 'openssl'
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
def get_search_count(term)
url = 'https://www.udemy.com/api-2.0/search-suggestions?q=java'
uri = URI(url)
response = Net::HTTP.get(uri)
JSON.parse(response)
return response ["results"][0]["searched_count"]
end
get '/' do
return get_search_count("java")
end
我正在尝试在网页上显示该号码。我在运行时没有收到任何错误,但我不知道我是否真的从请求中收到反馈。
如果有帮助,这里是json文件的片段:
{
"results": [
{
"_class": "search_log",
"id": 88,
"phrase": "java",
"searched_count": 3749730,
"url": "/courses/search/?q=java"
},
编辑:这是我尝试在网页上显示它。位于index.erb
<html>
<head>
<title><%= @title %></title>
</head>
<body>
<h1><%= @headline %></h1>
<p><%= @paragraph %></p>
<form action="/action_page.php" method="get">
Search Term: <input type="text" name="term"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
另外,我在web.rb中的更新代码:
require 'sinatra'
require 'net/http'
require 'json'
require 'openssl'
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
def get_search_count(term)
url = 'https://www.udemy.com/api-2.0/search-suggestions?q=java'
uri = URI(url)
response = Net::HTTP.get(uri)
parsed_response = JSON.parse(response)
return parsed_response ["results"][0]["searched_count"]
end
get '/' do
return get_search_count("java")
end
get '/term' do
erb :index
end
get '/action_page.php' do
return get_search_count(params[:name])
end
答案 0 :(得分:0)
请将方法更改为此类
def get_search_count(term)
url = 'https://www.udemy.com/api-2.0/search-suggestions?q=java'
uri = URI(url)
response = Net::HTTP.get(uri)
parsed_response = JSON.parse(response)
return parsed_response ["results"][0]["searched_count"]
end
注意:如果你正确得到答案,那就可以了。