Программа закрывается вместо получения информации из API
Ладно, я все еще довольно новичок в программировании и в основном знаю только основы. Я никогда не работал с API. Я пытаюсь сделать программу, которая получает количество субмарин от PewDiePie и Cocomelon и сравнивает их.
using System; using Google.Apis.YouTube.v3; using Google.Apis.Services; using System.Threading; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Net.Http; using Newtonsoft.Json; using System.Threading.Tasks; namespace PewdiepieVsCoco { class Program { static void Main(string[] args) { try { var len = args?.Length; if (len == null || len.Value == 0) { PrintHelp(); return; } var pdpSubCount = args[0]; var pdpSub = GetPDPSubcount(pdpSubCount).Result; PrintPDPResult(pdpSub); } catch (AggregateException agg) { foreach (var e in agg.Flatten().InnerExceptions) Console.WriteLine(e.Message); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); } private static async Task<dynamic> GetPDPSubcount(string pdpSubCount) { var parameters = new Dictionary<String, String> { ["key"] = ConfigurationManager.AppSettings["APIKey"], ["channelId"] = "UC-lHJZR3Gqxm24_Vd_AJ5Yw", ["part"] = "statistics", ["forUsername"] = "PewDiePie", ["fields"] = "items/statistics(subscriberCount)" }; var baseUrl = "https://www.googleapis.com/youtube/v3/channels"; var fullUrl = MakeUrlWithQuery(baseUrl, parameters); var pdpSub = await new HttpClient().GetStringAsync(fullUrl); if (pdpSub != null) { //Does the thing return JsonConvert.DeserializeObject(pdpSubCount); } return default(dynamic); } private static string MakeUrlWithQuery(string baseUrl, IEnumerable<KeyValuePair<string, string>> parameters) { if (string.IsNullOrEmpty(baseUrl)) throw new ArgumentException(nameof(baseUrl)); if (parameters == null || parameters.Count() == 0) return baseUrl; return parameters.Aggregate(baseUrl, (accumulated, kvp) => string.Format($"{accumulated}{kvp.Value}&")); } private static void PrintPDPResult(dynamic pdpSub) { Console.WriteLine($"PewDiePie currently have: {pdpSub} subscribers");//insert subs } private static void PrintHelp() { Console.WriteLine("The war is on!"); Thread.Sleep(500); Console.WriteLine("PewDiePie Vs Cocomelon – Nursery Rhymes"); Thread.Sleep(500); } } }
Вот код, я следил за тем, что сделал Индийский чувак в видео YT, так что некоторые вещи я не знаю, что делать, но у меня есть представление о том, что происходит.
Что я уже пробовал:
Я понятия не имею, что случилось, поэтому не знаю, с чего начать
Richard MacCutchan
- Я понятия не имею, что случилось, поэтому не знаю, с чего начать"
Перестаньте тратить свое время на код, который вы не понимаете. Возьмите книгу или найдите хороший онлайн-учебник и потратьте время на изучение C# и basic .Чистые классы.