示例#1
0
        private static string GetResponse(HttpWebRequest webRequest, HttpClientAdvancedSettings advancedSettings = null)
        {
            string          output;
            HttpWebResponse response = null;

            if (advancedSettings != null && advancedSettings.Timeout != null)
            {
                webRequest.Timeout = advancedSettings.Timeout.Value;
            }

            try
            {
                response = (HttpWebResponse)webRequest.GetResponse();
                output   = GetResponseData(response);

                if (response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.NoContent)
                {
                    throw new Exception(string.Format("Status is {0}, code: {1}.", response.StatusCode, (int)response.StatusCode));
                }
            }
            catch (WebException e)
            {
                if (e.Response == null)
                {
                    throw;
                }
                response = (HttpWebResponse)e.Response;
                if (response == null)
                {
                    throw;
                }

                output = GetResponseData(response);
            }
            finally
            {
                if (response != null)
                {
                    response.Close();
                }
            }
            return(output);
        }
示例#2
0
        public static HttpWebRequest CreateWebRequest(string url, HttpClientAdvancedSettings advancedSettings = null)
        {
            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);

            webRequest.AllowAutoRedirect = false;

            if (advancedSettings == null)
            {
                return(webRequest);
            }

            if (advancedSettings.Timeout != null)
            {
                webRequest.Timeout = advancedSettings.Timeout.Value;
            }

            if (!string.IsNullOrEmpty(advancedSettings.User) || !string.IsNullOrEmpty(advancedSettings.Password))
            {
                SetBasicAuthHeader(webRequest, advancedSettings.User, advancedSettings.Password);
            }
            return(webRequest);
        }
示例#3
0
        public static string GetDataFromUrl(string url, HttpClientAdvancedSettings advancedSettings = null)
        {
            HttpWebRequest request = CreateWebRequest(url);

            return(GetResponse(request));
        }