Avatar billede lajer Nybegynder
31. august 2007 - 11:12 Der er 2 kommentarer

Hold Connection: KeepAlive med et HttpWebRequest

Hej Alle

Jeg er løbet panden mod muren på følgende problem.

Jeg skal have sendt et httprequest afsted til en socket server, på en aspx side. Socket serveren kræver, at jeg i min http headers har Connection: KeepAlive.

Dette var også utrolig nemt, jeg satta bare KeepAlive propertien til true, på mit WebRequest object. Mit problem er, at nu kommer Connection: KeepAlive med, men KUN første gang jeg kører mit script.

Reloader jeg siden, så kommer det ikke med. Venter jeg derimod en 5-10 minutter, og reloader siden igen, så står der igen Connection: KeepAlive i de http headers som WebRequest objectet sender med.

Nogen der kan komme med en forklaring herpå?

Jeg vil for en god ordens skyld, prøve at paste mit test kode her (test koden sender en en anden aspx side, der looper igennem alle http headers og udskriver det).

------------------------------

// Create a request for the URL.       
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/Chat%20v2.0/Test/takepost.aspx");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = true;

// Get the response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

// Get the stream containing content returned by the server.
Stream dataStream = response.GetResponseStream();

// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);

// Read the content.
string responseFromServer = reader.ReadToEnd();

// Display the content.
test.InnerHtml = "<xmp>"+responseFromServer+"</xmp>";

// Cleanup the streams and the response.
reader.Close();
dataStream.Close();
response.Close();
Avatar billede montago Praktikant
31. august 2007 - 11:34 #1
så hvidt jeg husker, gør keepalive kun dét at forbindelsen holdes åben indtil alle sider er hentet...

fx når du requester en hjemmeside med billeder... lukkes forbindelsen først når du har hentet alle billeder osv... i samme tunnel...

hvis du i dette script kun vil hente en tekst side eller en hjemmeside uden billeder... er keepalive ikke vigtig.
Avatar billede lajer Nybegynder
31. august 2007 - 11:55 #2
Det er så rimlig vigtigt her, for den socket server som jeg laver mit httprequest til kræver at KeepAlive er sat til hver gang.
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