Beispiel #1
0
        public void QueryStringTest()
        {
            string str = "http://mysite.com/page1?id=3123&format=json&action=edit&text=It's%20a%20brave%20new%20world!";

            var query = new UrlEncodingParser(str);

            Console.WriteLine(query);

            Assert.IsTrue(query["id"] == "3123");
            Assert.IsTrue(query["format"] == "json", "wrong format " + query["format"]);
            Assert.IsTrue(query["action"] == "edit");

            Console.WriteLine(query["text"]);
            // It's a brave new world!

            query["id"]     = "4123";
            query["format"] = "xml";
            query["name"]   = "<< It's a brave new world! say what?";

            var url = query.ToString();

            Console.WriteLine(url);
            Console.Write(query.ToString());
            //http://mysite.com/page1?id=4123&format=xml&action=edit&
            //text=It's%20a%20brave%20new%20world!&name=%3C%3C%20It's%20a%20brave%20new%20world!
        }
Beispiel #2
0
        public void QueryStringMultipleTest()
        {
            string str = "http://mysite.com/page1?id=3123&format=json&format=xml";

            var query = new UrlEncodingParser(str);

            Assert.IsTrue(query["id"] == "3123");
            Assert.IsTrue(query["format"] == "json,xml", "wrong format " + query["format"]);

            // multiple format strings
            string[] formats = query.GetValues("format");
            Assert.IsTrue(formats.Length == 2);

            query.SetValues("multiple", new[]
            {
                "1",
                "2",
                "3"
            });

            var url = query.ToString();

            Console.WriteLine(url);

            Assert.IsTrue(url ==
                          "http://mysite.com/page1?id=3123&format=json&format=xml&multiple=1&multiple=2&multiple=3");
        }
        internal string ReplaceQueryStringValuePairs(string url, string replaceKeys)
        {
            if (string.IsNullOrEmpty(replaceKeys))
            {
                return(url);
            }

            var urlQuery     = new UrlEncodingParser(url);
            var replaceQuery = new UrlEncodingParser(replaceKeys);

            foreach (string key in replaceQuery.Keys)
            {
                urlQuery[key] = replaceQuery[key];
            }

            return(urlQuery.ToString());
        }
    public static string FixUrl(string url)
    {
        url = url.Trim();

        if (IsBase64String(url))
        {
            byte[] data = Convert.FromBase64String(url);
            url = Encoding.UTF8.GetString(data);
        }

        if (!url.Contains("http:") && !url.Contains("https:") && !url.Contains("ftp:") && !url.Contains("ftps:"))
        {
            url = $"http://{url}";
        }

        Uri uri = new Uri(url);

        if (!url.EndsWith("/") && string.IsNullOrWhiteSpace(Path.GetFileName(WebUtility.UrlDecode(uri.AbsolutePath))) && string.IsNullOrWhiteSpace(uri.Query))
        {
            url += "/";
        }

        if (uri.Host == Constants.GoogleDriveDomain)
        {
            UrlEncodingParser urlEncodingParser = new UrlEncodingParser(url);

            if (urlEncodingParser.AllKeys.Contains("usp"))
            {
                urlEncodingParser.Remove("usp");
            }

            url = urlEncodingParser.ToString();
        }

        return(url);
    }
Beispiel #5
0
        public void WriteUrlTest()
        {
            // URL only
            string url = "http://test.com/page";

            var query = new UrlEncodingParser(url);

            query["id"]   = "321312";
            query["name"] = "rick";

            url = query.ToString();
            Console.WriteLine(url);

            Assert.IsTrue(url.Contains("name="));
            Assert.IsTrue(url.Contains("http://"));

            // URL with ? but no query
            url = "http://test.com/page?";

            query         = new UrlEncodingParser(url);
            query["id"]   = "321312";
            query["name"] = "rick";

            url = query.ToString();
            Console.WriteLine(url);

            Assert.IsTrue(url.Contains("name="));


            // URL with query
            url = "http://test.com/page?q=search";

            query         = new UrlEncodingParser(url);
            query["id"]   = "321312";
            query["name"] = "rick";

            url = query.ToString();
            Console.WriteLine(url);

            Assert.IsTrue(url.Contains("name="));
            Assert.IsTrue(url.Contains("http://"));


            // Raw query data
            url = "q=search&name=james";

            query         = new UrlEncodingParser(url);
            query["id"]   = "321312";
            query["name"] = "rick";

            url = query.ToString();
            Console.WriteLine(url);

            Assert.IsTrue(url.Contains("name="));
            Assert.IsTrue(!url.Contains("http://"));


            // No data at all
            url = null;

            query         = new UrlEncodingParser();
            query["id"]   = "321312";
            query["name"] = "rick";

            url = query.ToString();
            Console.WriteLine(url);

            Assert.IsTrue(url.Contains("name="));
            Assert.IsTrue(!url.Contains("http://"));
        }