using System;
using System.Diagnostics;
using System.IO;
using System.Net;

namespace PKHeX.Core
{
    public static class NetUtil
    {
        public static string? GetStringFromURL(string url)
        {
            try
            {
                var stream = GetStreamFromURL(url);
                if (stream == null)
                    return null;

                using var reader = new StreamReader(stream);
                return reader.ReadToEnd();
            }
            // No internet?
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
                return null;
            }
        }

        private static Stream? GetStreamFromURL(string url)
        {
            var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);

            // The GitHub API will fail if no user agent is provided
            httpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36";

            var httpWebResponse = httpWebRequest.GetResponse();
            return httpWebResponse.GetResponseStream();
        }
    }
}
