【发布时间】:2019-06-03 02:21:09
【问题描述】:
请原谅我缺乏知识,我是一名数据库专家,虽然我不久前涉足了一点 C#。我想弄清楚如何让这个 API 运行。
我尝试使用的 API 来自 https://rapidapi.com/api-sports/api/api-nba/。几乎没有任何文档可以指导我。
这是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using unirest_net.http;
using unirest_net;
namespace NBA_test
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Start ...");
Task<HttpResponse<MyClass.RootObject>> response = Unirest.get("https://api-nba-v1.p.rapidapi.com/gameDetails/5162")
.header("X-RapidAPI-Host", "api-nba-v1.p.rapidapi.com")
.header("X-RapidAPI-Key", "myKey")
.asJsonAsync<MyClass.RootObject>();
var status = response.Status;
Console.WriteLine("End ....");
}
}
public class MyClass
{
public class Result
{
public string seasonYear { get; set; }
public int gameId { get; set; }
public string arena { get; set; }
}
public class RootObject
{
public List<Result> results { get; set; }
}
}
}
var 状态从 Created 变为 Running,然后就是这样,程序关闭。没有错误消息,但我不知道如何从这个 API 中获取 JSON。我知道我错过了一些东西,但不知道是什么。
【问题讨论】:
-
您的问题是如何使用异步/等待模式(
Unirest.get似乎是异步的,因为它返回Task)?如果是这样,this question 和 this question 可能会对您有所帮助。 -
这太快了。只要给你的程序一个机会来提出这个请求。在
Main方法的末尾添加Console.ReadKey();行。 -
@cma-krv 你检查答案了吗?
-
@Ali Bahrami 是的,我做到了,他们都没有成功,所以我想弄清楚这一点。最近忙于家庭和工作,但很快就会回来。
-
好的,所以我从异步调用切换到同步调用。我不断收到“System.InvalidCastException:'无法将'System.IO.MemoryStream'类型的对象转换为'RootObject'。'”错误消息。