protected virtual string DoRequest()

in sdk/src/Core/Plugins/EC2Plugin.cs [123:154]


        protected virtual string DoRequest(string url, HttpMethod method, Dictionary<string, string> headers = null)
        {
            var httpWebRequest = WebRequest.CreateHttp(url);

            httpWebRequest.Timeout = 2000; // 2 seconds timeout
            httpWebRequest.Method = method.Method;

            if (headers != null)
            {
                foreach (var item in headers)
                {
                    httpWebRequest.Headers.Add(item.Key, item.Value);
                }
            }

            using(var response = (HttpWebResponse)httpWebRequest.GetResponse())
            {
                if (response.StatusCode < HttpStatusCode.OK || (int)response.StatusCode > 299)
                {
                    throw new Exception("Unable to complete the request successfully");
                }

                var encoding = !string.IsNullOrEmpty(response.ContentEncoding)
                    ? Encoding.GetEncoding(response.ContentEncoding)
                    : Encoding.UTF8;

                using (var streamReader = new StreamReader(response.GetResponseStream(), encoding))
                {
                    return streamReader.ReadToEnd();
                }
            }
        }