diff options
Diffstat (limited to 'Decompiler/Gestor.Application.Helpers/HttpHelper.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.Helpers/HttpHelper.cs | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.Helpers/HttpHelper.cs b/Decompiler/Gestor.Application.Helpers/HttpHelper.cs new file mode 100644 index 0000000..d552c84 --- /dev/null +++ b/Decompiler/Gestor.Application.Helpers/HttpHelper.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Linq; +using System.Net.Http; +using System.Text; +using System.Web; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; + +namespace Gestor.Application.Helpers; + +public static class HttpHelper +{ + public static Uri AddQuery<T>(this Uri uri, string name, T value) + { + UriBuilder uriBuilder = new UriBuilder(uri); + NameValueCollection nameValueCollection = HttpUtility.ParseQueryString(uri.Query); + nameValueCollection.Add(name, value?.ToString()); + uriBuilder.Query = nameValueCollection.ToString(); + return uriBuilder.Uri; + } + + public static Uri SetQuery(this Uri uri, string name, string value, bool escapeValue = true) + { + UriBuilder uriBuilder = new UriBuilder(uri); + Dictionary<string, string> dictionary = uri.ParseQueryString(); + string value2 = (escapeValue ? Uri.EscapeDataString(value) : value); + if (dictionary.ContainsKey(name)) + { + dictionary.Remove(name); + } + dictionary.Add(name, value2); + List<string> values = dictionary.Select((KeyValuePair<string, string> x) => x.Key + "=" + x.Value).ToList(); + string query = string.Join("&", values); + uriBuilder.Query = query; + return uriBuilder.Uri; + } + + public static Dictionary<string, string> ParseQueryString(this Uri uri) + { + int startIndex = uri.Query.IndexOf('?') + 1; + return (from o in uri.Query.Substring(startIndex).Split(new char[1] { '&' }) + select o.Split(new char[1] { '=' }) into items + where items.Length == 2 + select items).ToDictionary((string[] pair) => pair[0], (string[] pair) => pair[1]); + } + + public static Uri ToUri(this string uri) + { + Uri.TryCreate(uri, UriKind.Absolute, out Uri result); + return result; + } + + public static StringContent ToHttpContent<T>(this T content, Encoding encoding = null, string mediaType = "application/json") + { + //IL_0011: Unknown result type (might be due to invalid IL or missing references) + //IL_0017: Expected O, but got Unknown + return new StringContent(JsonConvert.SerializeObject((object)content), Encoding.UTF8, mediaType); + } + + public static JObject ToJObject(this string jsonString) + { + try + { + return JObject.Parse(jsonString); + } + catch (Exception) + { + return null; + } + } + + public static JObject ToJObject(this HttpContent content) + { + return content.ReadAsStringAsync().Result.ToJObject(); + } + + public static string ToBase64BasicEncode(this string value) + { + return "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(value)); + } +} |