Мобильный телефон, перенаправить добавление% 20 к параметру - PullRequest
1 голос
/ 01 июля 2011

У меня мобильное приложение с несколькими папками. Эти папки используются в качестве переменных, которые я добавлю к параметрам:

        //Get the URL
        string url = HttpContext.Current.Request.Url.AbsolutePath;

        //Location
        string location = "";

        //Check if string contains /
        if (url.Contains('/'))
        {
            //Get location
            string[] words = url.Split('/');

            //Set location 
            location = words[1];

            //Now check if string contains ?
            if (location.Contains('?'))
            {
                //Remove ?
                string[] removeQ = location.Split('?');

                //Reset location
                location = removeQ[0];
            }

        }

После того, как я укажу путь от URL, я должен перенаправить в зависимости от типа телефона:

        if (Request.UserAgent.ToUpper().Contains("BLACKBERRY"))
        {
            //Now we check the version
            if (double.Parse(Request.Browser.Version) <= 5)
            {
                Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
            }
            else if (double.Parse(Request.Browser.Version) >= 6)
            {
                Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
            }
            else
            {
                Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
            }

        }
        else if (Request.UserAgent.ToUpper().Contains("HTC")) //HTC phones cannot handle JQuery mobile
        {
            Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
        }
        else if (Request.UserAgent.ToUpper().Contains("ANDROID")) //Certain androids are out of date
        {
            if (double.Parse(Request.Browser.Version) > 2)
            {
                Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
            }
            else
            {
                Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
            }

        }
        else
        {
            Response.Redirect("http://myWebsite.com/Default.aspx?location= " + location);
        }
    }

Проблема в том, что на location будет добавлено «% 20» впереди. Этого не произойдет, если я протестирую его на рабочем столе, только на телефонах.

Почему это происходит? Как я могу предотвратить это?

Ответы [ 2 ]

2 голосов
/ 01 июля 2011

Удалите все пробелы в конце строковых литералов, например, измените:

"http://myWebsite.com/Default.aspx?location= " + location

на

"http://myWebsite.com/Default.aspx?location=" + location
0 голосов
/ 01 июля 2011

В URL пробелы кодируются в% 20. Вам просто нужно удалить все завершающие или начальные пробелы из ваших строк, чтобы исправить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...