【发布时间】:2018-09-01 18:40:37
【问题描述】:
尝试在 Udemy 的 API 中提取字段“searched_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 文件的 sn-p:
{
"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
【问题讨论】:
-
@SimpleLime 我尝试使用我可以在网上找到的内容来实现它,但我认为我使用的语法不正确。能否进一步说明?