Kodowanie znaków do URL

0

Witam,
muszę przekazać parametry po kliknięciu buttona do zmiennych na stronę internetową (po kliknięciu na butto chcę wywołać url np. www.nazwa.pl/index.php?id=1&tytul=abc)

przed wywołaniem muszę przekodować wartości które pójdą do url'a na html (przykładowo: + zmienić na %2B itp)

wiecie może czy z poziomu c# da się kodować znaki w ten sposób i wywołać stronę bez jej otwierania w przeglądarce??

Z góry dzięki za pomoc,
pozdrawiam Northwest

0
Northwest napisał(a)

Witam,
wiecie może czy z poziomu c# da się kodować znaki w ten sposób i wywołać stronę bez jej otwierania w przeglądarce??

Klasy: HttpWebRequest , HttpWebResponse, tak da sie kodować znaki, troche nie czaje z tym "get" po kija chcesz robic, ale sie da;p

0

Jak otworzyć przeglądarkę - tak żeby była niewidoczna dla użytkownika (chcę otworzyć ten url)

znalazłem taką funkcję jakby ktoś kiedyś potrzebował (działa):

public static string HtmlEncode(string text)
        {
            char[] chars = HttpUtility.HtmlEncode(text).ToCharArray();
            StringBuilder result = new StringBuilder(text.Length + (int)(text.Length * 0.1));

            foreach (char c in chars)
            {
                int value = Convert.ToInt32(c);
                if (value > 127)
                    result.AppendFormat("&#{0};", value);
                else
                    result.Append(c);
            }

            return result.ToString();
        }
0
Northwest napisał(a)

wywołać stronę bez jej otwierania w przeglądarce??

hym

Northwest napisał(a)

Jak otworzyć przeglądarkę - tak żeby była niewidoczna dla użytkownika (chcę otworzyć ten url)

hym raz tak raz tak, te klasy co ci napisalem poszukaj na msdn i pewnie bedzie to co chcesz.

pozdr.

0

nooo mi obojętne - chcę tylko żeby to działało;) ważny jest dla mnie efet...:)

0

public static string HtmlEncode(string text)
{
char[] chars = HttpUtility.HtmlEncode(text).ToCharArray();
StringBuilder result = new StringBuilder(text.Length + (int)(text.Length * 0.1));

        foreach (char c in chars)
        {
            int value = Convert.ToInt32(c);
            if (value > 127)
                result.AppendFormat("&#{0};", value);
            else
                result.Append(c);
        }

        return result.ToString();
    }

Jest prostszy sposób:

string enc = System.Web.HttpUtility.UrlEncode(expression);
0

a wiesz może w jaki sposób otworzyć stronę internetową, tak żeby była albo niewidoczna dla usera, albo jakoś w tle to zrobić??

0

HttpWebRequest albo WebClient na przyklad.

0

Witam ponownie,
mam taki kod:

String phone_html = HtmlEncode(phone);
           String command_html = HtmlEncode(comboBox2.Text);
           string z =  "http://www.bla.pl.send/index.php?n=" + phone_html + "&tresc=" + command_html + "";
           MessageBox.Show(phone_html);
            string strLink = String.Format(z);
           WebRequest request = HttpWebRequest.Create(strLink);
           request.Timeout = 10000; // 10 sek

           WebResponse response = request.GetResponse();

           MessageBox.Show("Ok", "Name", MessageBoxButtons.OK, MessageBoxIcon.Information);
           Close();

Chciałbym wysłać do ww adresu www (do jego URL) wartości ze zmiennych phone_html i command_html.

Problem w tym że zawsze wywala mi timeout - a skryptu nie wykonuje... Wiecie może dlaczego??:/
Wiem że mam ustawioną opcję timeoutu, ale ta strona w przeglądarce ładuje się błyskawicznie (to jest 0 grafiki itp - sam skrypt), a w programie wywala timeouta...:/

Z góry dzięki za pomoc,
pozdrawiam Northwest

1 użytkowników online, w tym zalogowanych: 0, gości: 1