【发布时间】:2020-05-21 03:06:23
【问题描述】:
大家好,我正试图弄清楚这个IGDB api。我确信它很强大,但似乎很难知道需要调用什么以及如何调用,因为他们的文档中没有很好的示例。
举个例子,我希望从游戏“真人快打”中获取盒子艺术和游戏信息,并且我需要从 SNES 版本中获取它。
我需要的 SNES 真人快打是图片中倒数第二个。真人快打 (1992)。
所以我首先有代码来获取 id、封面、流派、名称、平台和屏幕截图:
public partial class Gameinfo
{
[JsonProperty("id")]
public long Id { get; set; }
[JsonProperty("cover")]
public long Cover { get; set; }
[JsonProperty("genres")]
public long[] Genres { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("platforms")]
public long[] Platforms { get; set; }
[JsonProperty("screenshots")]
public long[] Screenshots { get; set; }
}
using (var client = new HttpClient()) {
using (var httpClient = new HttpClient { BaseAddress = baseAddress }) {
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("user-key", "##########################");
using (
var response = await httpClient.GetAsync("games?search=" + HttpUtility.UrlEncode(game) + "&fields=*")
)
{
string responseData = await response.Content.ReadAsStringAsync();
gameData = JsonConvert.DeserializeObject<List<Gameinfo>>(responseData);
System.Diagnostics.Debug.WriteLine(gameData);
}
}
}
上面的JSON响应是:
你可以看到第一个命中是 Mortal Kombat II,第二个是我正在寻找的那个,原始的 Mortal Kombat。因此,从上面的代码中,我得到了搜索“更深”所需的 2 个主要内容。游戏 ID 和 平台 ID。但是这么说 - 碱液是问题所在。我无法仅搜索 Mortal Kombat 并自动获得正确的 1992 版本。
所以在不知道游戏发布日期的情况下,如何使用所需的 SNES 平台搜索正确的游戏?
更新 1
所以我尝试了以下操作:
using (
var response = await httpClient.GetAsync("games/?search=" +
HttpUtility.UrlEncode("mortal kombat") +
"&fields=name,platforms.name&where platforms.id = 19")
但无论如何,我总是得到相同的数据:
[
{
"id": 81899,
"name": "Mortal Kombat \u0026 Mortal Kombat II",
"platforms": [
{
"id": 22,
"name": "Game Boy Color"
}
]
},
{
"id": 119,
"name": "Mortal Kombat",
"platforms": [
{
"id": 6,
"name": "PC (Microsoft Windows)"
},
{
"id": 9,
"name": "PlayStation 3"
},
{
【问题讨论】:
标签: c# api rest class json.net