public async virtual Task <T> PostAsync <T, TR>(string Url, TR tParameter, QueryInstance query) where T : class where TR : class { try { if (query.CheckParameter()) { return(null); } var host = await GetHostsAsync(query); var client = ExtendClass.GetHttpClient(ClientFactory, nameof(NacosHttpClient), host, Nacos.Value.EnableSSL); var content = ExtendClass.SetMethodJsonParameter(tParameter); content.Headers.Clear(); content.Headers.ContentType = new MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; var httpResponse = await client.PostAsync(Url, content); var resultStr = httpResponse.Content.ReadAsStringAsync().Result; var result = resultStr.ToJson <T>(); return(result); } catch (Exception ex) { Console.WriteLine(MethodInfo.GetCurrentMethod().Name + ":" + ex.Message); return(null); } }
public async virtual Task <T> GetAsync <T, TR>(string Url, TR tParameter, QueryInstance query) where T : class where TR : class { try { if (query.CheckParameter()) { return(null); } var host = await GetHostsAsync(query); var client = ExtendClass.GetHttpClient(ClientFactory, nameof(NacosHttpClient), host, Nacos.Value.EnableSSL); Url = Url.GetUrl(ExtendClass.SetMethodParameter(tParameter)); var httpResponse = await client.GetAsync(Url); var resultStr = await httpResponse.Content.ReadAsStringAsync(); var result = resultStr.ToJson <T>(); return(result); } catch (Exception ex) { Console.WriteLine(MethodInfo.GetCurrentMethod().Name + ":" + ex.Message); return(null); } }
public async Task <ServiceList> Queryinstances(QueryInstance query) { if (query.CheckParameter()) { return(null); } var url = InterfaceConst.Queryinstances; var model = await GetAsync <QueryInstance, ServiceList>(url, query, MethodBase.GetCurrentMethod().Name, typeof(ServiceList)); return(model); }
private async Task <Hosts> GetHostsAsync(QueryInstance query) { try { var host = await BaseLoadBalance.GetUrl(query); return(host); } catch (Exception ex) { Console.WriteLine(MethodInfo.GetCurrentMethod().Name + ":" + ex.Message); return(null); } }
public override async Task <Hosts> GetUrl(QueryInstance query) { var t = await NacosService.Queryinstances(query); if (t != null && t.Hosts != null && t.Hosts.Count > 0) { var host = t.Hosts[iHostIndex]; if (iHostIndex + 1 == t.Hosts.Count) { iHostIndex = 0; } else { iHostIndex += 1; } return(host); } return(null); }
public abstract Task <Hosts> GetUrl(QueryInstance query);