You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Tiobon.Web.Core/Tiobon.Core.Common/Extensions/ExpressionExtensions_Nacos.cs

152 lines
5.9 KiB

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
{
/// <summary>
/// Linq扩展
/// </summary>
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<string> Cof_NaoceGet(this Nacos.V2.INacosNamingService serv, string ServiceName,
// string Group, string apiurl, Dictionary<string, string> 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<string> Cof_NaocePostForm(this Nacos.V2.INacosNamingService serv, string ServiceName,
// string Group, string apiurl, Dictionary<string, string> 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<string> 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<string> Cof_NaocePostFile(this Nacos.V2.INacosNamingService serv, string ServiceName,
// string Group, string apiurl, Dictionary<string, byte[]> 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
}
}