/// <summary> /// 处理get请求 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="httpRequest"></param> /// <returns></returns> public HttpResponse <T> DoGet <T>(HttpRequest httpRequest) { int statusCode; try { //Console.WriteLine($"Wenli.Config.ApolloClient 正在开始请求{httpRequest.Url} ..."); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(httpRequest.Url); req.Method = "GET"; req.Headers["Authorization"] = _basicAuth; int timeout = httpRequest.Timeout; if (timeout <= 0) { timeout = _timeOut; } int readTimeout = httpRequest.ReadTimeout; if (readTimeout <= 0 && readTimeout != Timeout.Infinite) { readTimeout = _readTimeOut; } req.Timeout = timeout; req.ReadWriteTimeout = readTimeout; using (HttpWebResponse res = (HttpWebResponse)req.BetterGetResponse()) { statusCode = (int)res.StatusCode; //Console.WriteLine($"Wenli.Config.ApolloClient 请求{httpRequest.Url} 已完成,StatusCode:{statusCode}"); if (statusCode == 200) { using (var stream = new StreamReader(res.GetResponseStream(), Encoding.UTF8)) { var content = stream.ReadToEnd(); T body = JSONHelper.DeserializeObject <T>(content); return(new HttpResponse <T>(statusCode, body)); } } if (statusCode == 304 || statusCode == 404) { return(new HttpResponse <T>(statusCode)); } } } catch (Exception ex) { //Console.WriteLine($"Wenli.Config.ApolloClient Err:{ex.Message} type:{ex.GetType().Name}"); throw new ApolloConfigException("Wenli.Config.ApolloClient Could not complete get operation,url:" + httpRequest.Url, ex); } throw new ApolloConfigStatusCodeException(statusCode, string.Format("Wenli.Config.ApolloClient Get operation failed for {0}", httpRequest.Url)); }
public HttpResponse <T> DoGet <T>(HttpRequest httpRequest) { int statusCode; try { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(httpRequest.Url); req.Method = "GET"; req.Headers["Authorization"] = basicAuth; int timeout = httpRequest.Timeout; if (timeout <= 0 && timeout != Timeout.Infinite) { timeout = m_configUtil.Timeout; } int readTimeout = httpRequest.ReadTimeout; if (readTimeout <= 0 && readTimeout != Timeout.Infinite) { readTimeout = m_configUtil.ReadTimeout; } req.Timeout = timeout; req.ReadWriteTimeout = readTimeout; using (HttpWebResponse res = (HttpWebResponse)req.BetterGetResponse()) { statusCode = (int)res.StatusCode; if (statusCode == 200) { using (var stream = new StreamReader(res.GetResponseStream(), Encoding.UTF8)) { T body = JSON.DeserializeObject <T>(stream.ReadToEnd()); return(new HttpResponse <T>(statusCode, body)); } } if (statusCode == 304) { return(new HttpResponse <T>(statusCode)); } } } catch (Exception ex) { throw new ApolloConfigException("Could not complete get operation", ex); } throw new ApolloConfigStatusCodeException(statusCode, string.Format("Get operation failed for {0}", httpRequest.Url)); }