public static async Task <string> Fetch(string url, BotLog log, string useragent = null, Action <HttpWebRequest> callback = null) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.Timeout = 1000 * 60; request.Headers[HttpRequestHeader.UserAgent] = useragent ?? UserAgent; callback?.Invoke(request); using (WebResponse answer = await request.GetResponseAsync()) using (StreamReader reader = new StreamReader(answer.GetResponseStream(), Encoding.UTF8)) { string result = reader.ReadToEnd(); return(result); } } catch (WebException e) { if (e.Status == WebExceptionStatus.Timeout) { log.Nice("HTTP", ConsoleColor.Red, "Request timed out for [ " + url + " ]"); } else if (e.Status == WebExceptionStatus.ConnectFailure) { log.Nice("HTTP", ConsoleColor.Red, "(404) Couln't reach [ " + url + " ]"); } else { log.Nice("HTTP", ConsoleColor.Red, "Unknown error [ " + url + " ]\n" + e.ToString()); } return(""); } }
public static string Serialize(Object obj, BotLog log) { try { string json = JsonConvert.SerializeObject(obj); return(json); } catch { log.Nice("JSON", ConsoleColor.Red, "Couldn't serialize a string!"); log.Danger(obj.ToString()); return(""); } }
public static T Deserialize <T>(string json, BotLog log) { try { T deserialized = JsonConvert.DeserializeObject <T>(json); return(deserialized); } catch { log.Nice("JSON", ConsoleColor.Red, "Couldn't deserialize a string!"); log.Danger(json); return(default(T)); } }