Avatar billede desi-mus Nybegynder
03. september 2007 - 16:23 Der er 10 kommentarer og
1 løsning

HttpWebRequest og danske bogstaver som parameter

Hvordan sender jeg danske bogstaver med som parameter i url’en.?

HttpWebRequest myReq = (HttpWebRequest)WebRequest.CreateDefault(”www.zzzz.dk?Test=æøå”);
Virker ikke, for når en simpel asp side, prøver at læse parameteren står der ikke æøå.
Kan nogle hjælpe?

Hilsen
Rasmus
Avatar billede nielle Nybegynder
03. september 2007 - 16:57 #1
Måske sådan?

HttpWebRequest myReq = (HttpWebRequest)WebRequest.CreateDefault(Server.UrlEncode("www.zzzz.dk?Test=æøå"));
Avatar billede arne_v Ekspert
03. september 2007 - 16:59 #2
HttpWebRequest myReq = (HttpWebRequest)WebRequest.CreateDefault("http://www.zzzz.dk/?" + HttpUtility.UrlEncode ("Test=æøå", "UTF-8"));

erstat UTF-8 med ISO-8859-1 hvis det er hvad siden forventer.
Avatar billede desi-mus Nybegynder
03. september 2007 - 17:24 #3
Både Server.UrlEncode og HttpUtility.UrlEncode, kan visual studio ikke finde…
Avatar billede desi-mus Nybegynder
03. september 2007 - 17:30 #4
Det er en Windows applikation som det skal integreres i, ved ikke om det er derfor den ikke understøtte de to klasser.
Avatar billede arne_v Ekspert
03. september 2007 - 17:44 #5
using System.Web;

og en reference til System.Web.dll
Avatar billede desi-mus Nybegynder
03. september 2007 - 18:26 #6
Har ikke kunne få det til at virke med HttpUtility.UrlEncode, modtager i hvert fald ikke de rigtige respons fra serveren:(

Fandt dog her på eksperten, en stump kode til HttpWebRequest, som næsten virker. Der kommer bare ikke mellemrum med, når man angiver det. Hvorfor ikke?

myReq.Method = "POST";
myReq.ContentType = "application/x-www-form-urlencoded";
StreamWriter post = new StreamWriter(myReq.GetRequestStream(),Encoding.Default);
post.Write(”Test=æøå æøå”);
post.Close();
Avatar billede arne_v Ekspert
03. september 2007 - 18:44 #7
Den skal stadig URL encodes.

Mellemrum skal enten være "%20" eller "+".
Avatar billede arne_v Ekspert
03. september 2007 - 18:44 #8
Din oprindelige kode er iøvrigt en GET mens din nye kode er en POST.
Avatar billede desi-mus Nybegynder
03. september 2007 - 18:57 #9
Arne giv et svar, så for du point. Det virker nu ved at replace mellemrum med + i løsningen fra kl. 18:26...
For resten nu bruger jeg Encoding.Default, kan det have problemmer hvis jeg installere applikationen på en anden maskine.? Jeg tænker ”Default” er vel ikke ens, på alle pc’er…
Avatar billede arne_v Ekspert
03. september 2007 - 22:51 #10
Jeg mener nu at default er CP-1252 på alle Windows.

Men du kan jo gardere dig med:

Encoding.GetEncoding(1252)
Avatar billede arne_v Ekspert
03. september 2007 - 22:52 #11
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester