C#代码中的YouTube API


using (var client = new HttpClient())
{
    client.BaseAddress = new Uri("https://www.googleapis.com/youtube/v3/");
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    HttpResponseMessage response = client.GetAsync("search?q=manam&type=video&order=relevance&part=snippet&maxResults=50&key=AIzaSyA4GZFAgfvsAItwFRmnAZvbTHoDeyunf2k").Result;
    if (response.IsSuccessStatusCode)
    {
        dynamic lists = await response.Content.ReadAsAsync<mycustomObject>(); // what should I write here
    } 
}

我试图在我的项目中使用Web API呼叫来获取YouTube视频。这是我到现在尝试的代码,要获得响应,我应该在mycustomobject代替什么?

当我在浏览器中使用上述URL尝试数据时,我正在获取数据,当我超过代码上方返回null,

上述代码有什么问题?

我只想从此方法获取数据,

任何帮助将不胜感激。

您需要一个代表从呼叫返回的JSON数据的类。

如果您在浏览器中调用您的获取请求,您会看到JSON响应看起来像这样:

{
    kind: "youtube#searchListResponse"
    etag: ""tbWC5XrSXxe1WOAx6MK9z4hHSU8/lh-waoy9ByBY2eB-oZs7niK51FU""
    nextPageToken: "CDIQAA"
    pageInfo: 
        {
            totalResults: 176872
            resultsPerPage: 50
        }-
    items: [...50]-
}

因此,您需要创建一个具有匹配字段的类,然后为您填充该命令命令。这样的东西:

public class YoutubeApiResponse()
{
    public string kind {get; set;}
    public string etag {get; set;}
    public string nextPageToken {get; set;}
    public PageInfo pageInfo {get; set;}
    public List<Item> items {get; set;}
}

并这样打电话:

var youtubeResponse = await response.Content.ReadAsAsync<YoutubeApiResponse().Result();

我建议查看.NET客户端库 - 它将为您服务很多。

相关内容

  • 没有找到相关文章

最新更新