Avatar billede Slettet bruger
21. april 2006 - 10:45 Der er 17 kommentarer og
1 løsning

HttpWebRequest htmlencoder noget som den ikke skal

-----------------------------------------------------------     
string url = "http://192.168.2.143:4800/getplaylistfile?p=test|delim=;"

           
      HttpWebRequest httpWebRequest =
        (HttpWebRequest)WebRequest.Create(url);

      HttpWebResponse httpWebResponse =
        (HttpWebResponse)httpWebRequest.GetResponse();

      return httpWebResponse;
-------------------------------------------------

Når jeg bruger httpWebRequest til at sende den url jeg har skrevet i koden ovenfor bliver tegnet "|" html encoded.

Men hvis jeg bruger samme url i IE så bliver tegnet "|" ikke encoded.

Jeg skal bruge tegnet i ikke encoded tilstand.

Er der nogen der kan fortælle hvordan jeg får httpwebrequest til at ignorere "|" tegnet.

på forhånd tak.
Avatar billede arne_v Ekspert
22. april 2006 - 04:44 #1
Et lille problem er jo at HttpWebRequest har ret og IE er galt på den !

:-)

http://www.ietf.org/rfc/rfc1738.txt

Other characters are unsafe because
  gateways and other transport agents are known to sometimes modify
  such characters. These characters are "{", "}", "|", "\", "^", "~",
  "[", "]", and "`".

  All unsafe characters must always be encoded within a URL. For
  example
Avatar billede Slettet bruger
22. april 2006 - 22:00 #2
Arr sh*t dvs. At jeg ikke på nogen som helst måde kan bruge httpwebrequest til at fyre den url af.

Har du en løsning til hvordan jeg evt. Kan gøre det?
Avatar billede arne_v Ekspert
22. april 2006 - 22:06 #3
jeg antager at du ikke har mulighed for at bede dem i den anden ende
fixe deres script så det virker encoded ?

du kunne lave det i rå socket - det kræver lidt kode, men så bestemmer
du suverænt hvad der skal encodes
Avatar billede Slettet bruger
23. april 2006 - 09:16 #4
Jeg har prøvet at skrive til dem der laver det winamp plugin som jeg snakker til. Og indtil videre har de ikke givet lyd fra sig.

Rå socket skal det så være en standard tcp connection eller har vi noget specifik socket i c#?
Avatar billede arne_v Ekspert
23. april 2006 - 15:28 #5
Bare en helt almindelig TcpClient.

Skal jeg prøve at bixe et eksempel ?
Avatar billede Slettet bruger
23. april 2006 - 16:55 #6
Det må du meget gerne :D

Ved godt det ikke er det vilde med point der er til rådighed men du har allerede fortjent dem :D
Avatar billede arne_v Ekspert
23. april 2006 - 17:56 #7
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Web;

namespace E
{
    public class MainClass
    {
        public static void Main(string[] args)
        {
            // metode 1
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://arne/htbin/tell2?v=||||");
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            StreamReader sr1 = new StreamReader(resp.GetResponseStream());
            string html1 = sr1.ReadToEnd();
            Console.WriteLine(html1);
            sr1.Close();
            // metode 2
            TcpClient cli = new TcpClient("arne", 80);
            StreamWriter sw2 = new StreamWriter(cli.GetStream());
            sw2.WriteLine("GET /htbin/tell2?v=|||| HTTP/1.0");
            sw2.WriteLine("Host: arne");
            sw2.WriteLine("Connection: close");
            sw2.WriteLine();
            sw2.Flush();
            StreamReader sr2 = new StreamReader(cli.GetStream());
            string s = sr2.ReadToEnd();
            int ix = s.IndexOf("\r\n\r\n");
            string html2 = s.Substring(ix + 4);
            Console.WriteLine(html2);
            sr2.Close();
            sw2.Close();
        }
    }
}
Avatar billede arne_v Ekspert
23. april 2006 - 17:56 #8
og et svar
Avatar billede Slettet bruger
23. april 2006 - 18:24 #9
oki en sidste hurtigt ting. Stream readeren kan ikke nå at læse data der kommer tilbage. Forbi forbindelsen bliver lukket hurtigt. Igen kan vores alles hade ID godt nå at læse den samme kommando.

Det er et lorte plugin jeg snakker med. Kan se at IE aldrig får en document complete.
Avatar billede Slettet bruger
23. april 2006 - 18:24 #10
IE ikke ID hehe
Avatar billede arne_v Ekspert
23. april 2006 - 22:37 #11
det lyder mystisk

StreamReaderen skal læse alt data der er selvom connection lukkes ned

det er ikke en af de trælse side som checker på browser type og lukker hvis
ikke det er IE ??
Avatar billede Slettet bruger
24. april 2006 - 09:46 #12
jeg giver dig linket til pluginet hvis du er interesseret :D

Men ifølge den log der er med i pluginet så sender den data og så har den en fejl og lukker sin forbindelse, har skrevet det til udvikleren.

Men ifølge loggen gør den det samme ligegyldig om det er IE eller om det er den tcp client.

anyway du kan få linket her:
http://winamp.com/plugins/details.php?id=144907

og her er dokumentation til den:
http://httpget.incubo.de

og her:
http://httpget.incubo.de/forum/showthread.php?tid=2
Avatar billede Slettet bruger
24. april 2006 - 09:57 #13
funny jeg har liget fået af vide af udvikleren at man kan skifte seperator i kommandoer. Men problemt er at hvis man har sat & til at være parameter seperator så når man bruge en kommando der requester en sang der har & tegn i sit navn. Så vil det gå galt. Derfor har de default sat den til |.
Avatar billede Slettet bruger
24. april 2006 - 09:57 #14
Kunne det tænkes at stream readeren aldrig får af vide hvornår den slutter?
Avatar billede arne_v Ekspert
25. april 2006 - 04:12 #15
hm - jeg forstår ikke helt problemet

hvilke headere får du ? (kan hentes ud af resp)

hvor meget data når du at få tilbage ?
Avatar billede Slettet bruger
26. april 2006 - 08:28 #16
oki super sort. Nu kører det uden problemer. Jeg tror jeg snakker lidt videre med udvikleren af plugin'et. Jeg har ikke ændret noget.

Takker mange gange for hjælpen
Avatar billede Slettet bruger
26. april 2006 - 08:29 #17
oki jeg kan tilsynladende ikke acceptere dit svar ved ikke hvad hjemmesiden fejler prøver igen senere
Avatar billede Slettet bruger
26. april 2006 - 12:59 #18
sådan så fik jeg accepteret. Ved ikke hvad der går galt må været noget med det plug in :D
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