【问题标题】:youtube api in c# codec# 代码中的 youtube api
【发布时间】:2015-07-14 18:44:37
【问题描述】:
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,

上面的代码有什么问题吗?

我只是想从这个方法中获取数据,

任何帮助将不胜感激。

【问题讨论】:

    标签: c# api get youtube-api


    【解决方案1】:

    您需要一个表示调用返回的 JSON 数据的类。

    如果您在浏览器中调用 GET 请求,您会看到 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 Client Library - 它会为您处理很多此类问题。

    【讨论】:

    • 你到底是什么意思?
    • 您可以创建自己的方法,该方法将字段作为参数并构造 URL 以封装逻辑。这是你的意思吗?
    • 没问题,很乐意提供帮助。
    猜你喜欢
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 2021-10-18
    • 2014-03-13
    • 2019-04-20
    相关资源
    最近更新 更多