我正在尝试从 Steam API 获取游戏列表。我知道在此链接中有一个页面,其中包含 JSON 格式的所有游戏/应用程序:https ://api.steampowered.com/ISteamApps/GetAppList/v2/问题是我不知道如何获得它应用程序内的 JSON。我尝试的是下载整个网站 (html) 并在正确的 html 标记中查找作为 JSON 的字符串内容,但我想有更好的方法来获取内容。此外,这样做我只能让它在网络上工作,当我还希望它在应用程序版本中工作时。
关于如何获取页面内容的任何想法?
您必须向该 API 发起请求,该请求将为您提供可以存储在变量中的响应。
如果响应是 JSON 格式并且您想这样对待它,则必须对其进行解码(基本上从简单文本转换为 JSON)
要启动请求,您可以使用 Dart 的 http 包,您可以像这样导入:
import 'package:http/http.dart' as http;
然后,您通过使用该方法将API uri传递给方法来调用get
方法(或者在其他情况下,您将使用POST
, PUT
, DELETE
... 方法)。将响应存储在变量中。Uri.parse()
final response = await http.get( Uri.parse('https://api.steampowered.com/ISteamApps/GetAppList/v2/'));
现在变量“ response ”将保存您提供的 API 上的服务器将返回的输出(以及其他信息)
要获取内容,您必须访问response.body
(“响应”中的其他有用信息将response.statusCode
提供给您,因为名称表示您的响应状态,可以告诉您错误、成功请求......)
最后使用_json.decode()
import 'dart:convert';//<-- you need to import to be able to use the function
final jsonResponse = json.decode(response.body)
整体代码如下所示:
import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.get( Uri.parse('https://api.steampowered.com/ISteamApps/GetAppList/v2/'));
final jsonResponse = json.decode(response.body)
//Do whatever you want with jsonResponse
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句