using System; using System.Collections.Generic; using System.Linq; using System.Net.Http.Headers; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace Tiobon.Core.Common.Helper { /// /// Linq扩展 /// public static class ExpressionExtensions_Nacos { //#region Nacos NamingService //private static string GetServiceUrl(Nacos.V2.INacosNamingService serv, string ServiceName, string Group, // string apiurl) //{ // try // { // var instance = serv.SelectOneHealthyInstance(ServiceName, Group).GetAwaiter().GetResult(); // var host = $"{instance.Ip}:{instance.Port}"; // if (instance.Metadata.ContainsKey("endpoint")) host = instance.Metadata["endpoint"]; // var baseUrl = instance.Metadata.TryGetValue("secure", out _) // ? $"https://{host}" // : $"http://{host}"; // if (string.IsNullOrWhiteSpace(baseUrl)) // { // return ""; // } // return $"{baseUrl}{apiurl}"; // } // catch (Exception e) // { // Console.WriteLine(e.Message); // } // return ""; //} //public static async Task Cof_NaoceGet(this Nacos.V2.INacosNamingService serv, string ServiceName, // string Group, string apiurl, Dictionary Parameters = null) //{ // try // { // var url = GetServiceUrl(serv, ServiceName, Group, apiurl); // if (string.IsNullOrEmpty(url)) return ""; // if (Parameters != null && Parameters.Any()) // { // StringBuilder sb = new StringBuilder(); // foreach (var pitem in Parameters) // { // sb.Append($"{pitem.Key}={pitem.Value}&"); // } // url = $"{url}?{sb.ToString().Trim('&')}"; // } // HttpHelper.Httpclient.DefaultRequestHeaders.Accept.Add( // new MediaTypeWithQualityHeaderValue("application/json")); // var result = await HttpHelper.Httpclient.GetAsync(url); // return await result.Content.ReadAsStringAsync(); // } // catch (Exception e) // { // Console.WriteLine(e.Message); // } // return ""; //} //public static async Task Cof_NaocePostForm(this Nacos.V2.INacosNamingService serv, string ServiceName, // string Group, string apiurl, Dictionary Parameters) //{ // try // { // var url = GetServiceUrl(serv, ServiceName, Group, apiurl); // if (string.IsNullOrEmpty(url)) return ""; // var content = (Parameters != null && Parameters.Any()) ? new FormUrlEncodedContent(Parameters) : null; // HttpHelper.Httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // var result = await HttpHelper.Httpclient.PostAsync(url, content); // return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); // } // catch (Exception e) // { // Console.WriteLine(e.Message); // } // return ""; //} //public static async Task Cof_NaocePostJson(this Nacos.V2.INacosNamingService serv, string ServiceName, // string Group, string apiurl, string jSonData) //{ // try // { // var url = GetServiceUrl(serv, ServiceName, Group, apiurl); // if (string.IsNullOrEmpty(url)) return ""; // HttpHelper.Httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // var result = // await HttpHelper.Httpclient.PostAsync(url, new StringContent(jSonData, Encoding.UTF8, "application/json")); // return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); // //httpClient.BaseAddress = new Uri("https://www.testapi.com"); // //httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // //httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); // } // catch (Exception e) // { // Console.WriteLine(e.Message); // } // return ""; //} //public static async Task Cof_NaocePostFile(this Nacos.V2.INacosNamingService serv, string ServiceName, // string Group, string apiurl, Dictionary Parameters) //{ // try // { // var url = GetServiceUrl(serv, ServiceName, Group, apiurl); // if (string.IsNullOrEmpty(url)) return ""; // var content = new MultipartFormDataContent(); // foreach (var pitem in Parameters) // { // content.Add(new ByteArrayContent(pitem.Value), "files", pitem.Key); // } // HttpHelper.Httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // var result = await HttpHelper.Httpclient.PostAsync(url, content); // return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); // } // catch (Exception e) // { // //InfluxdbHelper.GetInstance().AddLog("Cof_NaocePostFile.Err", ee); // Console.WriteLine(e.Message); // } // return ""; //} //#endregion } }