Exemple #1
0
        public HttpWebRequest CreateRequest(string url, string method)
        {
            EnforceRateLimit();
            var prependDomain = !Uri.IsWellFormedUriString(url, UriKind.Absolute);

            HttpWebRequest request;

            if (prependDomain)
            {
                request = (HttpWebRequest)WebRequest.Create(String.Format("{0}://{1}{2}", Protocol, RootDomain, url));
            }
            else
            {
                request = (HttpWebRequest)WebRequest.Create(url);
            }
            request.CookieContainer = Cookies;
            if (Type.GetType("Mono.Runtime") != null)
            {
                var cookieHeader = Cookies.GetCookieHeader(new Uri("http://reddit.com"));
                request.Headers.Set("Cookie", cookieHeader);
            }
            if (RootDomain == "oauth.reddit.com")                              // use OAuth
            {
                request.Headers.Set("Authorization", "bearer " + AccessToken); //Must be included in OAuth calls
            }
            request.Method    = method;
            request.UserAgent = UserAgent + " - with RedditSharp by /u/sircmpwn";
            return(request);
        }
Exemple #2
0
        protected internal HttpWebRequest CreateRequest(string url, string method, bool prependDomain = true)
        {
            while (EnableRateLimit && (DateTime.Now - lastRequest).TotalSeconds < 2)
            {
                ;                                                                      // Rate limiting
            }
            lastRequest = DateTime.Now;
            HttpWebRequest request;

            if (prependDomain)
            {
                request = (HttpWebRequest)WebRequest.Create(string.Format("http://{0}{1}", RootDomain, url));
            }
            else
            {
                request = (HttpWebRequest)WebRequest.Create(url);
            }
            request.CookieContainer = Cookies;
            if (Type.GetType("Mono.Runtime") != null)
            {
                var cookieHeader = Cookies.GetCookieHeader(new Uri("http://reddit.com"));
                request.Headers.Set("Cookie", cookieHeader);
            }
            request.Method    = method;
            request.UserAgent = UserAgent + " - with RedditSharp by /u/sircmpwn";
            return(request);
        }
        public IEnumerator Send()
        {
            clock.Start();
            var    uri          = new Uri(WebRequest.url);
            string cookieHeader = Cookies.GetCookieHeader(uri);

            if (!string.IsNullOrEmpty(cookieHeader))
            {
                AddHeader("cookie", cookieHeader);
            }
            if (!hasSend)
            {
                hasSend = true;
                yield return(1);
            }
            while (!isDone)
            {
                yield return(WebRequest.Send());

                isDone = true;
            }
            if (!WebRequest.isError && Cookies != null)
            {
                string cookieStr = WebRequest.GetResponseHeader("Set-Cookie");
                if (!string.IsNullOrEmpty(cookieStr))
                {
                    Cookies.SetCookies(uri, cookieStr);
                }
            }
            responseTime = clock.ElapsedMilliseconds;
            clock.Reset();
            LogResponse();
        }
Exemple #4
0
        /// <summary>
        /// Sends a POST request to Checkmarx at the requestUri (e.g. auth/login) and containing the JSON given.
        /// </summary>
        /// <param name="requestUri">Request URI</param>
        /// <param name="json">JSON</param>
        /// <returns>Response from the server if the status code is 200</returns>
        async Task <HttpResponseMessage> Post(string requestUri, string json)
        {
            if (!requestUri.StartsWith(CX_REST_API))
            {
                requestUri = String.Format("{0}{1}", CX_REST_API, requestUri);
            }

            StringContent content = new StringContent(json, Encoding.UTF8, "application/json");
            Uri           uri     = new Uri(Client.BaseAddress, requestUri);

            Log.Debug(String.Format("Sending HTTP POST request to {0}: {1} bytes (application/json)",
                                    uri,
                                    Encoding.UTF8.GetByteCount(json)));

            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, uri);

            request.Content = content;
            request.Headers.Add("Cookie", Cookies.GetCookieHeader(Client.BaseAddress));

            HttpResponseMessage response = await Client.SendAsync(request);

            response.EnsureSuccessStatusCode();

            return(response);
        }
        // Helpers getting network communication objects. They use an alternative authentication
        // because the standard HTTP authentication doesn't work with Office 365.

        protected override WebClient GetClient()
        {
            var client = new WebClient();

            client.Headers.Add(HttpRequestHeader.Cookie,
                               Cookies.GetCookieHeader(new Uri(Drive.WebUrl)));
            return(client);
        }
Exemple #6
0
        protected override WebRequest GetWebRequest(Uri address)
        {
            WebRequest request = null;

            if (Proxy.ProxyType != ProxyTypeEnum.Socks)
            {
                request = base.GetWebRequest(address);
            }
            else
            {
                request = SocksHttpWebRequest.Create(address);
                var br = base.GetWebRequest(address);
                request.Method        = br.Method;
                request.ContentLength = br.ContentLength;
                request.ContentType   = br.ContentType;
            }


            request.Headers.Add("Cookie", Cookies.GetCookieHeader(address));
            request.Headers.Add("Accept-Language", AcceptLanguage);
            request.Headers.Add("Accept-Encoding", AcceptEncoding);
            if (CustomHeaders != null)
            {
                foreach (string key in CustomHeaders.AllKeys)
                {
                    request.Headers.Add(key, CustomHeaders[key]);
                }
            }


            if (Proxy.ProxyType != ProxyTypeEnum.Socks)
            {
                var httpRequest = (request as HttpWebRequest);
                httpRequest.UserAgent = UserAgent;
                httpRequest.Accept    = Accept;
                httpRequest.Referer   = Referer;
                httpRequest.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
                httpRequest.AllowAutoRedirect      = AllowAutoRedirect;
                // TO IMPLEMANT IF REQUIRED httpRequest.RefuseOtherDomainRedirect = RefuseOtherDomainRedirect;
            }
            else if (Proxy.ProxyType == ProxyTypeEnum.Socks)
            {
                var socksRequest = (request as SocksHttpWebRequest);
                socksRequest.UserAgent                           = UserAgent;
                socksRequest.Accept                              = Accept;
                socksRequest.Referer                             = Referer;
                socksRequest.AllowAutoRedirect                   = AllowAutoRedirect;
                socksRequest.DnsResolvedBySocksProxy             = DnsResolvedBySocksProxy;
                socksRequest.ValidateServerCertificateSocksProxy = ValidateServerCertificateSocksProxy;
                socksRequest.RefuseOtherDomainRedirect           = RefuseOtherDomainRedirect;
            }

            request.Timeout = (int)Timeout.TotalMilliseconds;
            request.Proxy   = Proxy.ProxyItem;

            return(request);
        }
        private void AddCookies(RequestBuilder requestBuilder, Uri absoluteUrl)
        {
            var cookieHeader = Cookies.GetCookieHeader(absoluteUrl);

            if (!string.IsNullOrWhiteSpace(cookieHeader))
            {
                requestBuilder.AddHeader(HeaderNames.Cookie, cookieHeader);
            }
        }
        private HttpWebRequest CreateRequest(Uri uri, string method)
        {
            EnforceRateLimit();
            var request = (HttpWebRequest)WebRequest.Create(uri);

            request.CookieContainer = Cookies;
            if (Type.GetType("Mono.Runtime") != null)
            {
                var cookieHeader = Cookies.GetCookieHeader(new Uri("http://reddit.com"));
                request.Headers.Set("Cookie", cookieHeader);
            }
            if (RootDomain == "oauth.reddit.com")                              // use OAuth
            {
                request.Headers.Set("Authorization", "bearer " + AccessToken); //Must be included in OAuth calls
            }
            request.Method    = method;
            request.UserAgent = UserAgent + " - with RedditSharp by /u/sircmpwn";
            return(request);
        }
        protected override WebRequest GetWebRequest(Uri address)
        {
            WebRequest request = null;

            if (Proxy.ProxyType != ProxyTypeEnum.Socks)
            {
                request = base.GetWebRequest(address);
            }
            else
            {
                request               = SocksHttpWebRequest.Create(address);
                request.Method        = base.GetWebRequest(address).Method;
                request.ContentLength = base.GetWebRequest(address).ContentLength;
                request.ContentType   = base.GetWebRequest(address).ContentType;
            }

            request.Headers.Add("Cookie", Cookies.GetCookieHeader(address));
            request.Headers.Add("Accept-Language", AcceptLanguage);
            request.Headers.Add("Accept-Encoding", AcceptEncoding);


            if (Proxy.ProxyType != ProxyTypeEnum.Socks)
            {
                var httpRequest = (request as HttpWebRequest);
                httpRequest.UserAgent = UserAgent;
                httpRequest.Accept    = Accept;
                httpRequest.Referer   = Referer;
                httpRequest.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
            }
            else if (Proxy.ProxyType == ProxyTypeEnum.Socks)
            {
                var socksRequest = (request as SocksHttpWebRequest);
                socksRequest.UserAgent = UserAgent;
                socksRequest.Accept    = Accept;
                socksRequest.Referer   = Referer;
            }

            request.Timeout = (int)Timeout.TotalMilliseconds;
            request.Proxy   = Proxy.ProxyItem;

            return(request);
        }
Exemple #10
0
        /// <summary>
        /// Create a <see cref="HttpWebRequest"/>
        /// </summary>
        /// <param name="uri">target  uri</param>
        /// <param name="method">http method</param>
        /// <returns></returns>
        protected virtual HttpWebRequest CreateRequest(Uri uri, string method)
        {
            EnforceRateLimit();
            var request = (HttpWebRequest)WebRequest.Create(uri);

            request.CookieContainer = Cookies;
            if (Type.GetType("Mono.Runtime") != null)
            {
                var cookieHeader = Cookies.GetCookieHeader(new Uri("http://reddit.com"));
                request.Headers.Set("Cookie", cookieHeader);
            }
            if (IsOAuth() && uri.Host.ToLower() == "oauth.reddit.com")         // use OAuth
            {
                request.Headers.Set("Authorization", "bearer " + AccessToken); //Must be included in OAuth calls
            }
            request.Method    = method;
            request.UserAgent = UserAgent + " - with RedditSharp by /u/meepster23";
            request           = InjectProxy(request);
            return(request);
        }
Exemple #11
0
        /// <summary>
        /// Create a <see cref="HttpWebRequest"/>
        /// </summary>
        /// <param name="url">target  uri</param>
        /// <param name="method">http method</param>
        /// <returns></returns>
        public virtual HttpWebRequest CreateRequest(string url, string method)
        {
            EnforceRateLimit();
            bool prependDomain;

            // IsWellFormedUriString returns true on Mono for some reason when using a string like "/api/me"
            // additionally, doing this fixes an InvalidCastException
            if (Type.GetType("Mono.Runtime") != null)
            {
                prependDomain = !url.StartsWith("http://") && !url.StartsWith("https://");
            }
            else
            {
                prependDomain = !Uri.IsWellFormedUriString(url, UriKind.Absolute);
            }
            HttpWebRequest request;

            if (prependDomain)
            {
                request = (HttpWebRequest)WebRequest.Create(string.Format("{0}://{1}{2}", Protocol, RootDomain, url));
            }
            else
            {
                request = (HttpWebRequest)WebRequest.Create(url);
            }
            request.CookieContainer = Cookies;
            if (Type.GetType("Mono.Runtime") != null)
            {
                var cookieHeader = Cookies.GetCookieHeader(new Uri("http://reddit.com"));
                request.Headers.Set("Cookie", cookieHeader);
            }
            if (IsOAuth() && request.Host.ToLower() == "oauth.reddit.com")     // use OAuth
            {
                request.Headers.Set("Authorization", "bearer " + AccessToken); //Must be included in OAuth calls
            }
            request.Method    = method;
            request.UserAgent = UserAgent + " - with RedditSharp by /u/meepster23";
            request           = InjectProxy(request);
            return(request);
        }
Exemple #12
0
 /// <summary>
 /// Получить капчу, нужна для отправки HLR запроса
 /// </summary>
 /// <returns></returns>
 public static async Task <ReturnTypes.ResponseGetCaptcha> GetCaptchaAsync()
 {
     return(await Task.Run(() =>
     {
         using (var request = new HttpRequest())
         {
             Image captchaImage = null;
             if (!string.IsNullOrEmpty(ProxyAdress))
             {
                 request.Proxy = ProxyClient.Parse(ProxyTypeLeaf, ProxyAdress);
             }
             try
             {
                 request.Get("https://smsc.ru/testhlr/").None();
             }
             catch
             {
                 return new ReturnTypes.ResponseGetCaptcha {
                     RequestError = true, FailedConnected = !request.HttpIsConnected()
                 };
             }
             Cookies = request.Response.Cookies;
             request.Cookies = Cookies;
             try
             {
                 captchaImage = Image.FromStream(request.Get("https://smsc.ru/sys/imgcode.php?1.1").ToMemoryStream());
             }
             catch
             {
                 return new ReturnTypes.ResponseGetCaptcha {
                     RequestError = true, FailedConnected = !request.HttpIsConnected()
                 };
             }
             SECookie = Cookies.GetCookieHeader("https://smsc.ru/testhlr/").Replace("SE=", "");
             return new ReturnTypes.ResponseGetCaptcha {
                 Captcha = captchaImage
             };
         }
     }));
 }
Exemple #13
0
        public HttpWebRequest CreateRequest(string url, string method)
        {
            EnforceRateLimit();
            bool prependDomain;

            // IsWellFormedUriString returns true on Mono for some reason when using a string like "/api/me"
            if (Type.GetType("Mono.Runtime") != null)
            {
                prependDomain = !url.StartsWith("http://") && !url.StartsWith("https://");
            }
            else
            {
                prependDomain = !Uri.IsWellFormedUriString(url, UriKind.Absolute);
            }

            HttpWebRequest request;

            if (prependDomain)
            {
                request = (HttpWebRequest)WebRequest.Create($"{Protocol}://{RootDomain}{url}");
            }
            else
            {
                request = (HttpWebRequest)WebRequest.Create(url);
            }
            request.CookieContainer = Cookies;
            if (Type.GetType("Mono.Runtime") != null)
            {
                var cookieHeader = Cookies.GetCookieHeader(new Uri("http://reddit.com"));
                request.Headers.Set("Cookie", cookieHeader);
            }
            if (request.Address.Host.ToLower().Contains("oauth.reddit.com"))   // use OAuth
            {
                request.Headers.Set("Authorization", "bearer " + AccessToken); //Must be included in OAuth calls
            }
            request.Method    = method;
            request.UserAgent = UserAgent + " - with RedditSharp by /u/sircmpwn";
            return(request);
        }
Exemple #14
0
        protected override WebRequest GetWebRequest(Uri address)
        {
            WebRequest request = null;

            if (Proxy.ProxyType != ProxyTypeEnum.Socks && Proxy.ProxyType != ProxyTypeEnum.Socks4)
            {
                request             = base.GetWebRequest(address);
                request.ContentType = string.IsNullOrEmpty(ContentType) ? base.GetWebRequest(address).ContentType : ContentType;
            }
            else if (Proxy.ProxyType == ProxyTypeEnum.Socks)
            {
                request               = SocksHttpWebRequest.Create(address, IsGetIPFromProxyServer);
                request.Method        = base.GetWebRequest(address).Method;
                request.ContentLength = base.GetWebRequest(address).ContentLength;
                request.ContentType   = string.IsNullOrEmpty(ContentType) ? base.GetWebRequest(address).ContentType : ContentType;
            }
            else if (Proxy.ProxyType == ProxyTypeEnum.Socks4)
            {
                request               = Socks4HttpWebRequest.Create(address);
                request.Method        = base.GetWebRequest(address).Method;
                request.ContentLength = base.GetWebRequest(address).ContentLength;
                request.ContentType   = string.IsNullOrEmpty(ContentType) ? base.GetWebRequest(address).ContentType : ContentType;
            }


            request.Headers.Add("Cookie", Cookies.GetCookieHeader(address));
            request.Headers.Add("Accept-Language", AcceptLanguage);
            request.Headers.Add("Accept-Encoding", AcceptEncoding);
            if (CustomHeaders != null)
            {
                foreach (string key in CustomHeaders.AllKeys)
                {
                    request.Headers.Add(key, CustomHeaders[key]);
                }
            }


            if (Proxy.ProxyType != ProxyTypeEnum.Socks && Proxy.ProxyType != ProxyTypeEnum.Socks4)
            {
                var httpRequest = (request as HttpWebRequest);
                httpRequest.UserAgent = UserAgent;
                httpRequest.Accept    = Accept;
                httpRequest.Referer   = Referer;
                httpRequest.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
                httpRequest.AllowAutoRedirect      = AllowAutoRedirect;
            }
            else if (Proxy.ProxyType == ProxyTypeEnum.Socks)
            {
                var socksRequest = (request as SocksHttpWebRequest);
                socksRequest.UserAgent         = UserAgent;
                socksRequest.Accept            = Accept;
                socksRequest.Referer           = Referer;
                socksRequest.AllowAutoRedirect = AllowAutoRedirect;
            }
            else if (Proxy.ProxyType == ProxyTypeEnum.Socks4)
            {
                var socks4Request = (request as Socks4HttpWebRequest);
                socks4Request.UserAgent         = UserAgent;
                socks4Request.Accept            = Accept;
                socks4Request.Referer           = Referer;
                socks4Request.AllowAutoRedirect = AllowAutoRedirect;
            }

            request.Timeout = (int)Timeout.TotalMilliseconds;
            request.Proxy   = Proxy.ProxyItem;

            return(request);
        }