Inheritance: RequestCachePolicy
Esempio n. 1
0
        private static HttpWebRequest CreateRequest(string url, string method)
        {
            int timeout = Convert.ToInt16(ConfigurationManager.AppSettings["timeout"]);
            string userAgent = ConfigurationManager.AppSettings["userAgent"];

            try
            {
                var uri = new Uri(url);
                var request = (HttpWebRequest)WebRequest.Create(uri);
                if (method != "GET")
                {
                    WebRequest.DefaultWebProxy = new WebProxy();
                    request.Timeout = timeout;
                    request.UserAgent = userAgent;
                    var policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default);
                    HttpWebRequest.DefaultCachePolicy = policy;
                    var noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
                    request.CachePolicy = noCachePolicy;
                }
                return request;
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
                return null;
            }
        }
 public void Ctor_ExpectedPropertyValues(
     HttpRequestCachePolicy p, HttpRequestCacheLevel level, TimeSpan maxAge, TimeSpan maxStale, TimeSpan minFresh, DateTime cacheSyncDate)
 {
     Assert.Equal(level, p.Level);
     Assert.Equal(maxAge, p.MaxAge);
     Assert.Equal(maxStale, p.MaxStale);
     Assert.Equal(minFresh, p.MinFresh);
     Assert.Equal(cacheSyncDate, p.CacheSyncDate);
     Assert.StartsWith("Level:", p.ToString());
 }
 private HttpWebRequest CreateWebApiRequest(String relativeUri)
 {
     var request = (HttpWebRequest)WebRequest.Create(new Uri(_uri, relativeUri));
     request.ContentType = SchedulerConstants.RequestJsonContentType;
     request.Headers.Add("Authorization",
                         new Signature(this._subscriptionId, this._secretKey).ToString());
     HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
     request.CachePolicy = noCachePolicy;
     return request;
 }
Esempio n. 4
0
 public static void Test_WebRequest_03(string url)
 {
     // create HttpWebRequest or FileWebRequest
     WebRequest req = WebRequest.Create(url);
     HttpRequestCachePolicy cachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default);
     req.CachePolicy = cachePolicy;
     // RequestCachePolicy
     _tr.WriteLine("Test_WebRequest_03");
     _tr.WriteLine("  url : \"{0}\"", url);
     _tr.WriteLine("  WebRequest.Create(url) : \"{0}\"", req);
 }
Esempio n. 5
0
        public string GetResponse(string host, IDictionary<string, object> arguments,
            bool useCookies = false)
        {
            const string contentType = "application/x-www-form-urlencoded";
            const string requestType = "POST";

            Logging.LogLine("POSTing to " + host + " " + arguments.GetHashCode(), "browser serv");

            var isFirst = true;

            if (useCookies)
            {
                if (!arguments.ContainsKey("csrf_token"))
                    arguments["csrf_token"] = GetCsrfToken();
            }

            var totalRequest = new StringBuilder();
            foreach (var arg in arguments.Where(arg => arg.Key != "type"))
            {
                if (!isFirst)
                    totalRequest.Append('&');
                else
                    isFirst = false;

                totalRequest.Append(arg.Key);
                totalRequest.Append('=');
                totalRequest.Append(HttpUtility.UrlEncode((string) arg.Value));
            }

            var toPost = Encoding.ASCII.GetBytes(totalRequest.ToString());

            var cachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
            var req = (HttpWebRequest) WebRequest.Create(host);
            req.CachePolicy = cachePolicy;
            req.Method = requestType;
            req.ContentType = contentType;
            req.ContentLength = toPost.Length;
            req.UserAgent = Constants.FriendlyName;

            if (useCookies)
                req.CookieContainer = loginCookies;

            using (var postStream = req.GetRequestStream())
                postStream.Write(toPost, 0, toPost.Length);

            using (var rep = (HttpWebResponse) req.GetResponse())
            using (var answerStream = rep.GetResponseStream())
            {
                if (answerStream == null)
                    return null;
                using (var answerReader = new StreamReader(answerStream))
                    return answerReader.ReadToEnd();
            }
        }
Esempio n. 6
0
 // retornar la respuesta en JSON.
 private static string GetResponseJSON(string uri)
 {
     HttpRequestCachePolicy policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default);
     HttpWebRequest.DefaultCachePolicy = policy;
     WebRequest request = WebRequest.Create(uri);
     HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
     request.CachePolicy = noCachePolicy;
     WebResponse response = request.GetResponse();
     using (Stream responseStream = response.GetResponseStream())
     {
         StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
         return reader.ReadToEnd();
     }
 }
        /// <summary>
        /// Gets web response of request specifying accept header header explicitly
        /// </summary>
        /// <param name="request">HttpWebRequest request</param>
        /// <param name="acceptHeaderValue">The specified accept header</param>
        /// <param name="maximumPayloadSize">Maximum size of response in byte to be allowed to receive</param>
        /// <returns>Web response</returns>
        public static Response Get(HttpWebRequest request, string acceptHeaderValue, int maximumPayloadSize)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }

            if (!string.IsNullOrEmpty(acceptHeaderValue))
            {
                request.Accept = acceptHeaderValue;
            }

            // make sure cache disabled, otherwise intermediate proxy would likely return cached responses
            HttpRequestCachePolicy cachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
            request.CachePolicy = cachePolicy;
            return WebHelper.Get(request, maximumPayloadSize);
        }
Esempio n. 8
0
        public string GetResponse(string host, IEnumerable<KeyValuePair<string, object>> arguments,
            bool useCookies = false)
        {
            const string contentType = "application/x-www-form-urlencoded";
            const string requestType = "POST";

            var isFirst = true;

            var totalRequest = new StringBuilder();
            foreach (var arg in arguments.Where(arg => arg.Key != "type"))
            {
                if (!isFirst)
                    totalRequest.Append('&');
                else
                    isFirst = false;

                totalRequest.Append(arg.Key);
                totalRequest.Append('=');
                totalRequest.Append(HttpUtility.UrlEncode((string) arg.Value));
            }

            var toPost = Encoding.ASCII.GetBytes(totalRequest.ToString());

            var cachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
            var req = (HttpWebRequest) WebRequest.Create(host);
            req.CachePolicy = cachePolicy;
            req.Method = requestType;
            req.ContentType = contentType;
            req.ContentLength = toPost.Length;

            if (useCookies)
                req.CookieContainer = loginCookies;

            using (var postStream = req.GetRequestStream())
                postStream.Write(toPost, 0, toPost.Length);

            using (var rep = (HttpWebResponse) req.GetResponse())
            using (var answerStream = rep.GetResponseStream())
            {
                if (answerStream == null)
                    return null;
                using (var answerReader = new StreamReader(answerStream))
                    return answerReader.ReadToEnd(); // read our response
            }
        }
Esempio n. 9
0
        public void TestCache()
        {
            HttpRequestCachePolicy policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Revalidate);
              Session.CachePolicy = policy;

              Request req = new Request(Session, new Uri("http://www.dr.dk/drfront/images//2013/05/21/c=0,17,1024,505;w=300;42676.jpg"));

              using (var resp = req.Accept("image/jpeg").Get<byte[]>())
              {
            resp.SaveToFile("c:\\tmp\\scrap.jpg");
            Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);
              }

              using (var resp = req.Accept("image/jpeg").Get<byte[]>())
              {
            resp.SaveToFile("c:\\tmp\\scrap.jpg");
            Assert.AreEqual(HttpStatusCode.NotModified, resp.StatusCode);
              }
        }
Esempio n. 10
0
        /// <summary>
        /// 请求并返回
        /// </summary>
        public static string GetRequestModel()
        {
            var url = string.Format("http://192.168.1.180:8002/login.aspx?key={0}", "test");
            HttpWebRequest webRequest = HttpWebRequest.Create(url) as HttpWebRequest;
            webRequest.Method = "GET";
            HttpRequestCachePolicy cPolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
            webRequest.CachePolicy = cPolicy;
            webRequest.Pipelined = false;
            webRequest.KeepAlive = false;
            webRequest.AllowAutoRedirect = true;
            webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1";
            webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            webRequest.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
            webRequest.Headers.Add("Cookie", "JSESSIONID=396C8439833102EFAF868D6297A9D8FD.web25_8081; __utma=142379556.1006189020.1343613376.1343613376.1343651790.2; __utmb=142379556.2.10.1343651790; __utmc=142379556; __utmz=142379556.1343613376.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)");
            HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse;

            var strRet = string.Empty;
            try
            {
                System.IO.Stream resStream = response.GetResponseStream();
                Encoding encode = System.Text.Encoding.Default;
                StreamReader readStream = new StreamReader(resStream, encode);
                Char[] read = new Char[256];
                int count = readStream.Read(read, 0, 256);
                while (count > 0)
                {
                    String str = new String(read, 0, count);
                    strRet = strRet + str;
                    count = readStream.Read(read, 0, 256);
                }
                resStream.Close();
            }
            catch (Exception e)
            {
                strRet = "";
            }
            return strRet;
        }
 internal RequestCachingSectionInternal(RequestCachingSection section)
 {
     if (!section.DisableAllCaching)
     {
         this.defaultCachePolicy = new RequestCachePolicy(section.DefaultPolicyLevel);
         this.isPrivateCache = section.IsPrivateCache;
         this.unspecifiedMaximumAge = section.UnspecifiedMaximumAge;
     }
     else
     {
         this.disableAllCaching = true;
     }
     this.httpRequestCacheValidator = new HttpRequestCacheValidator(false, this.UnspecifiedMaximumAge);
     this.ftpRequestCacheValidator = new FtpRequestCacheValidator(false, this.UnspecifiedMaximumAge);
     this.defaultCache = new WinInetCache(this.IsPrivateCache, true, true);
     if (!section.DisableAllCaching)
     {
         HttpCachePolicyElement defaultHttpCachePolicy = section.DefaultHttpCachePolicy;
         if (defaultHttpCachePolicy.WasReadFromConfig)
         {
             if (defaultHttpCachePolicy.PolicyLevel == HttpRequestCacheLevel.Default)
             {
                 HttpCacheAgeControl cacheAgeControl = (defaultHttpCachePolicy.MinimumFresh != TimeSpan.MinValue) ? HttpCacheAgeControl.MaxAgeAndMinFresh : HttpCacheAgeControl.MaxAgeAndMaxStale;
                 this.defaultHttpCachePolicy = new HttpRequestCachePolicy(cacheAgeControl, defaultHttpCachePolicy.MaximumAge, (defaultHttpCachePolicy.MinimumFresh != TimeSpan.MinValue) ? defaultHttpCachePolicy.MinimumFresh : defaultHttpCachePolicy.MaximumStale);
             }
             else
             {
                 this.defaultHttpCachePolicy = new HttpRequestCachePolicy(defaultHttpCachePolicy.PolicyLevel);
             }
         }
         FtpCachePolicyElement defaultFtpCachePolicy = section.DefaultFtpCachePolicy;
         if (defaultFtpCachePolicy.WasReadFromConfig)
         {
             this.defaultFtpCachePolicy = new RequestCachePolicy(defaultFtpCachePolicy.PolicyLevel);
         }
     }
 }
Esempio n. 12
0
        public WebReqResult GetHTML(string url)
        {
            WebReqResult result = new WebReqResult();

            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                HttpRequestCachePolicy cachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
                WebHeaderCollection requestHeaderCollection = request.Headers;

                requestHeaderCollection.Add("Accept-Language:en-US,en;q=0.5");

                request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
                request.CachePolicy = cachePolicy;
                request.Proxy = null; // Proxy autodetection slows down requests ( http://stackoverflow.com/a/935728 )
                request.Timeout = 5000;
                request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0";

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    Stream stream = response.GetResponseStream();
                    StreamReader readStream = new StreamReader(stream);
                    string html = WebUtility.HtmlDecode(readStream.ReadToEnd());
                    result.Success = true;
                    result.HTML = html;
                }
            }
            catch (Exception e)
            {
                result.Success = false;
                result.Error = e.Message;
            }

            return result;
        }
        private static HttpWebRequest CreateRequest(Uri url, string data, string method, string contentType, NameValueCollection headers, int timeout, bool gzip, NetworkCredential credential = null)
        {
            var request = (HttpWebRequest)WebRequest.Create(url);

            request.Method = method.ToUpper();
            request.ContentType = contentType;
            var noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
            request.CachePolicy = noCachePolicy;
            request.Timeout = timeout;
            request.Credentials = credential;

            if (headers != null)
                request.Headers.Add(headers);

            if (gzip)
                request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");

            if (data != null)
            {
                var encoding = new UTF8Encoding();
                var byteData = encoding.GetBytes(data);
                request.ContentLength = byteData.Length;

                using (var postStream = request.GetRequestStream())
                {
                    postStream.Write(byteData, 0, byteData.Length);
                }
            }
            else if (request.Method != "GET")
            {
                //Specify a zero content length to prevent 411s
                request.ContentLength = 0;
            }

            return request;
        }
Esempio n. 14
0
 public void SetCacheControlWithMaxAgeAndMinFresh(TimeSpan maxAge, TimeSpan minFresh)
 {
     _cachePolicy = new HttpRequestCachePolicy(HttpCacheAgeControl.MaxAgeAndMinFresh, maxAge, minFresh);
 }
Esempio n. 15
0
 public void SetCacheControlWithMaxAgeAndMaxStale(TimeSpan maxAge, TimeSpan maxStale)
 {
     _cachePolicy = new HttpRequestCachePolicy(HttpCacheAgeControl.MaxAgeAndMaxStale, maxAge, maxStale);
 }
Esempio n. 16
0
 public void SetCacheControlToNoCache()
 {
     _cachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
 }
Esempio n. 17
0
        public void WhenCreatingSessionItCopiesAllSimpleProperties()
        {
            // Arrange
              HttpRequestCachePolicy policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.CacheOrNextCacheOnly);

              IService service = RamoneConfiguration.NewService(BaseUrl);
              service.UserAgent = "Dummy";
              service.DefaultEncoding = Encoding.ASCII;
              service.DefaultRequestMediaType = new MediaType("X/1");
              service.DefaultResponseMediaType = new MediaType("Y/1");
              service.CachePolicy = policy;

              // Act
              ISession session = service.NewSession();

              // Assert
              Assert.AreEqual("Dummy", session.UserAgent);
              Assert.AreEqual(Encoding.ASCII, session.DefaultEncoding);
              Assert.AreEqual(new MediaType("X/1"), session.DefaultRequestMediaType);
              Assert.AreEqual(new MediaType("Y/1"), session.DefaultResponseMediaType);
              Assert.AreEqual(BaseUrl, session.BaseUri);
              Assert.AreEqual(policy, session.CachePolicy);
        }
        //
        private void ZeroPrivateVars()
        {
            // Set default values for private members here
            m_RequestVars = new RequestVars();

            m_HttpPolicy        = null;
            m_StatusCode        = (HttpStatusCode)0;
            m_StatusDescription = null;
            m_HttpVersion       = null;
            m_Headers           = null;
            m_SystemMeta        = null;
            m_DontUpdateHeaders = false;
            m_HeuristicExpiration = false;

            m_CacheVars   = new Vars();
            m_CacheVars.Initialize();

            m_ResponseVars= new Vars();
            m_ResponseVars.Initialize();
        }
        private Stream ResponseStreamPOST()
        {
            ServicePointManager.Expect100Continue = false;
            string regionquery = "";

            if (_region.Key != -1)
            {
                regionquery = "lr=" + _region.Key + "&";

            }
            /* Адрес для совершения запроса, полученный при регистрации IP,
            в него уже забит логин и ключ API.*/
            string url = @"http://yandex.ru/search/xml?" + regionquery + "user="******"&key=" + _APICredentials.Key;

            //if (_region.Key != -1)
            //{
            //    long swift = 11000000; //Смещение для регионов

            //    long swiftedregion = swift +  _region.Key;

            //    regionquery = " cat:" + swiftedregion.ToString();

            //}
            // Текст запроса в формате XML
            string command =
                @"<?xml version=""1.0"" encoding=""UTF-8""?>
             <request>
               <query>"
             + _query.ToString() +
               @"</query>
               <page>"
             + _page.ToString() +
               @"</page>
              <maxpassages>2</maxpassages>
              <groupings>
            <groupby attr=""d"" mode=""deep"" groups-on-page = ""50"" docs-in-group=""1"" curcateg=""-1""/>
              </groupings>
                      </request>";

            byte[] bytes = Encoding.UTF8.GetBytes(command);
            // Объект, с помощью которого будем отсылать запрос и получать ответ.
            HttpRequestCachePolicy policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
            HttpWebRequest.DefaultCachePolicy = policy;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            request.Method = "POST";
            request.ContentLength = bytes.Length;
            request.ContentType = "text/xml";
            // Пишем наш XML-запрос в поток
            using (Stream requestStream = request.GetRequestStream())
            {
                requestStream.Write(bytes, 0, bytes.Length);
            }

            // Получаем ответ
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream responsestream = response.GetResponseStream();
            return responsestream;
        }
        public String monitisHttpGet(String url_and_parameter)
        {
            WebRequest request;
            request = WebRequest.Create(url_and_parameter);
            HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
            request.CachePolicy = noCachePolicy;
 
            Stream objStream;
            objStream = request.GetResponse().GetResponseStream();

            StreamReader objReader = new StreamReader(objStream);
            String response = objReader.ReadToEnd();

            objStream.Close();
            objReader.Close();

            return response;
        }
Esempio n. 21
0
        public string GetPageHTML(string pageUrl, int timeoutSeconds)
        {
            System.Net.WebResponse response = null;

            try
            {
                // Setup our Web request
                System.Net.WebRequest request = System.Net.WebRequest.Create(pageUrl);
                HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
                request.CachePolicy = noCachePolicy;
                try
                {
                    request.Proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
                }
                catch (Exception proxyE)
                {
                    PumpString("Error setting proxy server: " + proxyE.Message, false, false, new Version(), false, "");
                }

                request.Timeout = timeoutSeconds * 1000;

                // Retrieve data from request
                response = request.GetResponse();

                System.IO.Stream streamReceive = response.GetResponseStream();
                System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("utf-8");
                System.IO.StreamReader streamRead = new System.IO.StreamReader(streamReceive, encoding);

                // return the retrieved HTML
                return streamRead.ReadToEnd();
            }
            catch (Exception ex)
            {
                // Error occured grabbing data, return empty string.
                PumpString("An error occurred while retrieving the HTML content. " + ex.Message, false, false, new Version(), false, "");
                return "";
            }
            finally
            {
                // Check if exists, then close the response.
                if (response != null)
                {
                    response.Close();
                }
            }
        }
 private string GetResponse(string strUrl)
 {
     string strReturn;
     HttpWebRequest objRequest;
     IAsyncResult ar;
     HttpWebResponse objResponse = null;
     StreamReader objs;
     try
     {
         objRequest = (HttpWebRequest)WebRequest.Create(strUrl);
         var policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.BypassCache);
         objRequest.CachePolicy = policy;
         ar = objRequest.BeginGetResponse(GetScrapingResponse, objRequest);
         //// Wait for request to complete
         ar.AsyncWaitHandle.WaitOne(1000 * 60, true);
         if (objRequest.HaveResponse == false)
         {
             return string.Empty;
         }
         objResponse = (HttpWebResponse)objRequest.EndGetResponse(ar);
         // ReSharper disable AssignNullToNotNullAttribute
         objs = new StreamReader(objResponse.GetResponseStream());
         // ReSharper restore AssignNullToNotNullAttribute
         strReturn = objs.ReadToEnd();
     }
     catch (Exception ex)
     {
         LblError.Text = ex.Message;
         return string.Empty;
     }
     finally
     {
         if (objResponse != null)
             objResponse.Close();
     }
     return strReturn;
 }
Esempio n. 23
0
 private static string ResponseToStringPost(string url, string command, WebProxy proxy = null)
 {
     string result = String.Empty;
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
     HttpRequestCachePolicy policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
     HttpWebRequest.DefaultCachePolicy = policy;
     request.Method = "POST";
     request.KeepAlive = false;
     request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0";
     byte[] bytes = Encoding.UTF8.GetBytes(command);
     request.ContentLength = bytes.Length;
     request.ContentType = "application/x-www-form-urlencoded";
     if (proxy != null) request.Proxy = proxy;
     using (Stream requestStream = request.GetRequestStream())
     {
         requestStream.Write(bytes, 0, bytes.Length);
     }
     using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
     {
         var respStream = new StreamReader(response.GetResponseStream());
         result = respStream.ReadToEnd();
         response.Close();
         respStream.Close();
     }
     return result;
 }
Esempio n. 24
0
 private Stream ResponseStreamPost(string url, string command, WebProxy proxy = null)
 {
     byte[] bytes = Encoding.UTF8.GetBytes(command);
     HttpRequestCachePolicy policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
     HttpWebRequest.DefaultCachePolicy = policy;
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
     request.Method = "POST";
     request.ContentLength = bytes.Length;
     request.ContentType = "text/xml";
     if (proxy != null)
     {
         request.Proxy = proxy;
     }
     using (Stream requestStream = request.GetRequestStream())
     {
         requestStream.Write(bytes, 0, bytes.Length);
     }
     HttpWebResponse response = (HttpWebResponse)request.GetResponse();
     Stream responsestream = response.GetResponseStream();
     return responsestream;
 }
Esempio n. 25
0
File: HttpProc.cs Progetto: aj-hc/SY
        /// <summary>    
        /// 创建HTTP请求    
        /// </summary>    
        /// <param name="url">URL地址</param>    
        /// <returns></returns>    
        private HttpWebRequest CreateRequest(string url, string method)
        {
            Uri uri = new Uri(url);

            if (uri.Scheme == "https")
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(this.CheckValidationResult);

            // Set a default policy level for the "http:" and "https" schemes.
            HttpRequestCachePolicy policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Revalidate);
            HttpWebRequest.DefaultCachePolicy = policy;

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
            request.AllowAutoRedirect = false;
            request.AllowWriteStreamBuffering = false;
            request.Method = method;
            if (proxy != null)
                request.Proxy = proxy;
            request.CookieContainer = cc;
            foreach (string key in requestHeaders.Keys)
            {
                request.Headers.Add(key, requestHeaders[key]);
            }
            requestHeaders.Clear();
            return request;
        }
Esempio n. 26
0
 public ApiClient(HttpRequestCachePolicy cachePolicy)
     : base("https://ossindex.net/v1.1", cachePolicy)
 { }
Esempio n. 27
0
        private string GetSiteContent(Uri uri, int maxRetryTimes, bool holdConnection)
        {
            Console.WriteLine("GetSiteContent. uri={0} maxRetryTimes={1}", uri.AbsoluteUri, maxRetryTimes);

            HttpWebRequest request;
            HttpWebResponse response = null;

            var noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
            HttpWebRequest.DefaultCachePolicy = noCachePolicy;

            int i;
            for (i = 1; i <= maxRetryTimes; i++)
            {
                try
                {
                    request = (HttpWebRequest)WebRequest.Create(uri);
                    request.Timeout = 10 * 60 * 1000; //set to 10 minutes, default 100 sec. default IE7/8 is 60 minutes
                    response = (HttpWebResponse)request.GetResponse();
                    break;
                }
                catch (WebException e)
                {
                    Console.WriteLine("Exception Message: " + e.Message);
                    if (e.Status == WebExceptionStatus.ProtocolError)
                    {
                        Console.WriteLine("Status Code: {0}", ((HttpWebResponse)e.Response).StatusCode);
                        Console.WriteLine("Status Description: {0}", ((HttpWebResponse)e.Response).StatusDescription);
                    }
                }

                Thread.Sleep(30 * 1000);
            }

            if (i > maxRetryTimes)
            {
                throw new Exception("Web Site has error and reached maxRetryTimes");
            }

            Stream responseStream = response.GetResponseStream();
            StringBuilder sb = new StringBuilder();
            byte[] buf = new byte[100];
            int length;
            while ((length = responseStream.Read(buf, 0, 100)) != 0)
            {
                if (holdConnection)
                {
                    Thread.Sleep(TimeSpan.FromSeconds(10));
                }
                sb.Append(Encoding.UTF8.GetString(buf, 0, length));
            }

            string responseString = sb.ToString();
            Console.WriteLine("Site content: (IsFromCache={0})", response.IsFromCache);
            Console.WriteLine(responseString);

            return responseString;
        }
 static internal void ConfigCachePolicy(WebRequest request, bool isRefresh)
 {
     HttpWebRequest httpRequest = request as HttpWebRequest;
     if (httpRequest != null)
     {
         // Setting CachePolicy to the default level if it is null.
         if (request.CachePolicy == null || request.CachePolicy.Level != RequestCacheLevel.Default)
         {
             if (isRefresh)
             {
                 if (_httpRequestCachePolicyRefresh == null)
                 {
                     _httpRequestCachePolicyRefresh = new HttpRequestCachePolicy(HttpRequestCacheLevel.Refresh);
                 }
                 request.CachePolicy = _httpRequestCachePolicyRefresh;
             }
             else
             {
                 if (_httpRequestCachePolicy == null)
                 {
                     _httpRequestCachePolicy = new HttpRequestCachePolicy();
                 }
                 request.CachePolicy = _httpRequestCachePolicy;
             }
         }
     }
 }
Esempio n. 29
0
 private static string web2string(string url)
 {
     var sb = new StringBuilder();
     var buffer = new byte[8192];
     var request = (HttpWebRequest)WebRequest.Create(url);
     var noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
     request.CachePolicy = noCachePolicy;
     var response = (HttpWebResponse)request.GetResponse();
     var resStream = response.GetResponseStream();
     var tempString = string.Empty;
     var count = 0;
     do
     {
         count = resStream.Read(buffer, 0, buffer.Length);
         if (count != 0)
         {
             tempString = Encoding.UTF8.GetString(buffer, 0, count);
             sb.Append(tempString);
         }
     }
     while (count > 0);
     return sb.ToString();
 }
Esempio n. 30
0
        private Stream ResponseStreamPOST( string Url, string Command, WebProxy Proxy )
        {
            byte[] bytes = Encoding.UTF8.GetBytes( Command );

            // Объект, с помощью которого будем отсылать запрос и получать ответ.
            HttpRequestCachePolicy policy = new HttpRequestCachePolicy( HttpRequestCacheLevel.NoCacheNoStore );
            HttpWebRequest.DefaultCachePolicy = policy;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create( Url );

            request.Method = "POST";
            request.ContentLength = bytes.Length;
            request.ContentType = "text/xml";

            if( Proxy != null )
            {
                request.Proxy = Proxy;
            }

            // Пишем наш XML-запрос в поток
            using( Stream requestStream = request.GetRequestStream() )
            {
                requestStream.Write( bytes, 0, bytes.Length );
            }

            // Получаем ответ
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream responsestream = response.GetResponseStream();
            return responsestream;
        }