Exemplo n.º 1
0
        //public string[] GetAHrefUrls(string data)
        //{

        //}

        public HashSet <string> GetAHrefUrls(string page, Uri pageUri)
        {
            if (page == null)
            {
                return(null);
            }
            HashSet <string> urls    = new HashSet <string>();
            int             founUrls = 0;
            MatchCollection curUrls  = A_Href_Regex.Matches(page);

            foreach (Match m in curUrls)
            {
                string parsedUri = m.Groups["uri"].Value;
                Uri    uri       = UriHandler.CreateUri(parsedUri, pageUri.Scheme, pageUri.Host);
                if (uri != null)
                {
                    if (uri.Host == pageUri.Host && !urls.Contains(uri.OriginalString))
                    {
                        urls.Add(uri.OriginalString);
                        founUrls++;
                    }
                }
            }
            return(urls);
        }
Exemplo n.º 2
0
        public static void SaveCookies(Uri uri, CookieCollection cookies)
        {
            if (cookies == null)
            {
                return;
            }

            Uri host = UriHandler.CreateUri(string.Empty, uri.Scheme, uri.Host);

            if (uri != null)
            {
                _sharedCookies.Add(host, cookies);
            }
        }
Exemplo n.º 3
0
        private static string Parse(string address, string pattern)
        {
            Uri           uri = UriHandler.CreateUri(address);
            DownloaderObj obj = new DownloaderObj(uri, null, true, null, CookieOptions.UseShared & CookieOptions.SaveShared, 5);

            Downloader.DownloadSync(obj);
            if (obj.DataStr != null)
            {
                return((new Regex(pattern)).Match(obj.DataStr).Groups[1].ToString());
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 4
0
        private void SaveCookies(Uri uri, CookieCollection cookies)
        {
            if (CollectCookie)
            {
                if (cookies == null || uri == null)
                {
                    return;
                }

                var host = UriHandler.CreateUri(string.Empty, uri.Scheme, uri.Host);

                if (host != null)
                {
                    AllReceivedCookies.Add(host, cookies);
                }
            }
        }
Exemplo n.º 5
0
        public static void StartUp(string[] args)
        {
            if (args == null || args.Length == 0)
            {
                return;
            }

            if (args.Length > 1)
            {
                var urischeme = Constants.UriSchemePrefix + "://";

                if (args[1].StartsWith(urischeme))
                {
                    UriHandler.Process(args[1]);
                }
            }
        }
Exemplo n.º 6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="uri"></param>
 /// <returns>表示是否在应用内处理</returns>
 public static bool HandleUriLaunch(Uri uri)
 {
     if (uri is null)
     {
         return(true);
     }
     if (Available)
     {
         return(UriHandler.Handle(uri));
     }
     if (!UriHandler.CanHandleInApp(uri))
     {
         UriHandler.Handle(uri);
         return(false);
     }
     launchUri = uri;
     return(true);
 }
Exemplo n.º 7
0
        public void ParseProxyFromUrlsOrSerp(List <string> uriList)
        {
            List <Uri> validUris = new List <Uri>();

            foreach (var uri in uriList)
            {
                Uri validUri = UriHandler.CreateUri(uri);
                if (validUri != null)
                {
                    validUris.Add(validUri);
                }
            }
            if (validUris.Count == 0)
            {
                validUris = null;
            }
            ParseProxyFromUrlsOrSerp(validUris);
        }
Exemplo n.º 8
0
    public void Can_Process_Uri()
    {
        // Arrange
        var sut                = new UriHandler();
        var instance           = new Uri("http://www.google.com/");
        var request            = TestHelpers.CreateCustomTypeHandlerRequest(instance);
        var typeHandlers       = Enumerable.Empty <ICustomTypeHandler>();
        var typeNameFormatters = new[] { new DefaultTypeNameFormatter() };
        var callback           = TestHelpers.CreateCallback(typeHandlers, typeNameFormatters);

        // Act
        var actual = sut.Process(request, callback);
        var code   = callback.Builder.ToString();

        // Assert
        actual.Should().BeTrue();
        code.Should().Be(@"new System.Uri(""http://www.google.com/"")");
    }
Exemplo n.º 9
0
        bool CheckRedirect(HttpWebResponse response, ref Uri redirUri)
        {
            if (response.Headers == null)
            {
                return(false);
            }

            var location = response.Headers[HttpResponseHeader.Location];

            if (location != null)
            {
                var host  = response.ResponseUri.Host;
                var sheme = response.ResponseUri.Scheme;

                redirUri = UriHandler.CreateUri(location, sheme, host);
                return(true);
            }
            return(false);
        }
Exemplo n.º 10
0
        public PatternsContainer LoadPagePattern(string uristr, string path)
        {
            List <string> patterns = new List <string>();

            try
            {
                lock (sync)
                {
                    using (StreamReader sw = new StreamReader(path, Encoding.UTF8))
                    {
                        while (!sw.EndOfStream)
                        {
                            string[] uriAndPatt = sw.ReadLine().Split();
                            if (uriAndPatt.Length < 2)
                            {
                                continue;
                            }

                            string line = sw.ReadLine();

                            if (uriAndPatt[0] == uristr)
                            {
                                for (int i = 1; i < uriAndPatt.Length; i++)
                                {
                                    patterns.Add(uriAndPatt[i]);
                                }
                            }
                        }
                    }
                }
                Uri uri = UriHandler.CreateUri(uristr);
                if (uri == null)
                {
                    return(null);
                }

                return(new PatternsContainer(uri, patterns));
            }
            catch (Exception)
            {
                return(null);
            }
        }
Exemplo n.º 11
0
        bool CheckRedirect(DownloaderObj obj, ref Uri redirUri)
        {
            if (obj.Response.Headers == null)
            {
                return(false);
            }

            string location = obj.Response.Headers[HttpResponseHeader.Location];

            if (location != null)
            {
                string host  = obj.Response.ResponseUri.Host;
                string sheme = obj.Response.ResponseUri.Scheme;

                redirUri = UriHandler.CreateUri(location, sheme, host);
                return(true);
            }
            return(false);
        }
Exemplo n.º 12
0
        public static List <PatternsContainer> LoadPatterns(string path)
        {
            List <PatternsContainer> paterns = new List <PatternsContainer>();

            try
            {
                lock (sync)
                {
                    using (StreamReader sw = new StreamReader(path, Encoding.UTF8))
                    {
                        while (!sw.EndOfStream)
                        {
                            string[] uriAndPatt = sw.ReadLine().Split('|');

                            if (uriAndPatt.Length < 2)
                            {
                                continue;
                            }

                            Uri uri = UriHandler.CreateUri(uriAndPatt[0]);
                            if (uri == null)
                            {
                                continue;
                            }

                            List <string> pattList = new List <string>();
                            for (int i = 1; i < uriAndPatt.Length; i++)
                            {
                                pattList.Add(uriAndPatt[i]);
                            }
                            paterns.Add(new PatternsContainer(uri, pattList));
                        }
                    }
                }
                return(paterns);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Exemplo n.º 13
0
 public void AddUriHandler(UriHandler handler)
 {
     handlers.Add(handler);
 }
Exemplo n.º 14
0
        private static void Uri_Click(object sender, RoutedEventArgs e)
        {
            var uri = InAppNavigator.GetInAppUri((DependencyObject)sender);

            UriHandler.Handle(uri);
        }