Avatar billede qumle Nybegynder
16. oktober 2003 - 10:53 Der er 7 kommentarer og
1 løsning

httprequest, TcpClient og headers

jeg skal sende en http request til en server.
er der en generel måde at gøre dette på?
jeg er nået frem til noget i stil med dette:

et httpRequest object oprettes
HttpRequest req = new HttpRequest("filnavn.fil", "c:\\", query);

herefter sendes det via en TcpClient og dennes Networkstream.

Er det en fornuftig måde at gøre det på eller hva?

tillægsspørgsmål:

hvis jeg bare sender en string via TcpClient objectet, kommer der så httpheadere på og hvordan ser jeg disse
Avatar billede arne_v Ekspert
16. oktober 2003 - 11:01 #1
Brug HttpWebRequest og Response:

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.xxx.dk/et-eller-andet");
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        Stream stm = resp.GetResponseStream();
        int c;
        string res = "";
        while((c = stm.ReadByte()) >= 0) {
                res += (char)c;
        }
        stm.Close();
        resp.Close();
Avatar billede qumle Nybegynder
16. oktober 2003 - 11:09 #2
hvor sender du forespørslen? er det i denne linie
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

jeg sad godt og kiggede på
HttpRequest
HttptWebRequest og
WebRequest

kan du kort sige hvad forskellen er og hvornår man bruger hvad?
Avatar billede arne_v Ekspert
16. oktober 2003 - 11:12 #3
Jeg ved faktisk ikke om det er Create eller GetResponse der fysisk sender
requesten. Det virker imidlertid.

Me dhensyn til headere så har HttpWebResponse de mest almindelige
som properties og en GetResponseHeader til de mere specielle.

HttpWebRequest er et special tilfælde af WebRequest for HTTP URL's.

HttpRequest har jeg aldrig brugt.
Avatar billede qumle Nybegynder
16. oktober 2003 - 11:15 #4
ok super
Avatar billede qumle Nybegynder
16. oktober 2003 - 11:36 #5
hvad er det liga du gør her
int c;
        string res = "";
        while((c = stm.ReadByte()) >= 0) {
                res += (char)c;
        }
Avatar billede qumle Nybegynder
16. oktober 2003 - 11:37 #6
ok læser fra streamen
sorry
Avatar billede qumle Nybegynder
20. oktober 2003 - 10:14 #7
arnev >> jeg får en invalidcast exception når jeg skriver
HttpWebRequest req = (HttpWebRequest)WebRequest.Create;

men WebRequest.Create() returnerer jo også en WebRequest som ikke er en subklasse til HttpWebRequest...
er det mig der er helt galt på den eller hvad?
Avatar billede arne_v Ekspert
20. oktober 2003 - 14:39 #8
Hvis argumentet til Create er en HTTP URL så bør den type cast virke
(har selv brugt den i egen kode !).

HttpWebRequest er en sub klasse af WebRequest.
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
Kurser inden for grundlæggende programmering

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