public TResponse Post <TResponse>(IReturn <TResponse> request, string path = null) { string url = BaseUrl.TrimEnd('/') + "/" + (path ?? request.GetPath().TrimStart('/')); var httprequest = (HttpWebRequest)WebRequest.Create(url); httprequest.Method = "POST"; try { AddCommonHeaders(httprequest); SetTimeoutProxyAndCookies(httprequest); byte[] data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(request)); httprequest.ContentLength = data.Length; #if DEBUG var requestId = Guid.NewGuid().ToString(); System.Diagnostics.Debug.WriteLine($"{requestId} - {httprequest.Method} {url} request=> {JsonConvert.SerializeObject(request)}", "RestClient"); #endif using (Stream stream = httprequest.GetRequestStream()) { stream.Write(data, 0, data.Length); // Sending the data } string responseStr = string.Empty; using (HttpWebResponse response = (HttpWebResponse)httprequest.GetResponse()) { CollectCookies(response); using (Stream responseStream = response.GetResponseStream()) { using (StreamReader readStream = new StreamReader(responseStream, Encoding.GetEncoding(Encoding.UTF8.CodePage))) { responseStr = readStream.ReadToEnd(); #if DEBUG System.Diagnostics.Debug.WriteLine($"{requestId} - {httprequest.Method} {url} response=> {responseStr}", "RestClient"); #endif readStream.Close(); } responseStream.Close(); } response.Close(); } return(JsonConvert.DeserializeObject <TResponse>(responseStr)); } catch (Exception ex) { logger.WriteLog("RestClient error", ex, Level.Error); } return(default(TResponse)); }
public async Task <TResponse> GetAsync <TResponse>(IReturn <TResponse> request, string path = null) { string url = BaseUrl.TrimEnd('/') + "/" + (path ?? request.GetPath()).TrimStart('/'); var httprequest = (HttpWebRequest)WebRequest.Create(url); httprequest.Method = "GET"; try { AddCommonHeaders(httprequest); SetTimeoutProxyAndCookies(httprequest); string responseStr = string.Empty; #if DEBUG var requestId = Guid.NewGuid().ToString(); System.Diagnostics.Debug.WriteLine($"{requestId} - {httprequest.Method} {url}", "RestClient"); #endif using (HttpWebResponse response = (HttpWebResponse)(await httprequest.GetResponseAsync())) { CollectCookies(response); using (Stream responseStream = response.GetResponseStream()) { using (StreamReader readStream = new StreamReader(responseStream, Encoding.GetEncoding(Encoding.UTF8.CodePage))) { responseStr = await readStream.ReadToEndAsync(); #if DEBUG System.Diagnostics.Debug.WriteLine($"{requestId} - {httprequest.Method} {url} response=> {responseStr}", "RestClient"); #endif readStream.Close(); } responseStream.Close(); } response.Close(); } return(JsonConvert.DeserializeObject <TResponse>(responseStr)); } catch (Exception ex) { logger.WriteLog("RestClient error", ex, Level.Error); } return(default(TResponse)); }