[C#] Webclient / HttpWebRequest Refresh

11/29/2012 14:17 Njahs#1
Guten Tag zusammen,

ich habe ein 'kleines Problem mit meinem
neuen C# Projekt.
Ich muss, soweit dies möglich ist,
eine Seite (via Webclient oder HttpWebRequest)
alle paar Minuten Neu laden (Refresh / F5),
ohne diese komplett neu aufzurufen / zu "deklarieren".

-> Ich habe zZ noch nichts hilfreiches darüber gefunden.
Danke!

MfG
11/29/2012 17:34 .SkyneT.#2
Gehört in die .NET Section.

Zum Problem:
Quote:
ohne diese komplett neu aufzurufen / zu "deklarieren".
Dafür brauchst du einen Cache, wie das in C# am besten geht
kann ich dir leider nicht sagen.
12/01/2012 18:27 Njahs#3
Quote:
Originally Posted by .SkyneT. View Post
Gehört in die .NET Section.
Huch, ganz überlesen, danke!

BTT: Könnte man ein Beispiel bekommen?
12/02/2012 23:27 ĤΛƇҠ#4
Erstell ein neues projekt, pack einen webbrowser drauf, mach einen timer, stell den intervall auf 600000(5min), un benutz bei Timer1_Tick Webbrowser.Refresh();

sollte so funzen, garantiere ich ^^

Falls es auch pixel sein darf bastel dir am besten was mit autoit ;)
12/03/2012 17:00 .SkyneT.#5
Quote:
Originally Posted by ĤΛƇҠ View Post
Erstell ein neues projekt, pack einen webbrowser drauf, mach einen timer, stell den intervall auf 600000(5min), un benutz bei
5 min -> 300s -> 300 000ms
12/04/2012 12:56 ĤΛƇҠ#6
oh ja, sorry hast recht, hatte wohl 10 min im kopf ^^
12/04/2012 18:35 MrSm!th#7
#moved
12/05/2012 17:47 wunderdie#8
Was benutze du denn eigentlcih jetzt.?
Webclient oder HttpWebRequest?

Ich würde es mit eine Thread und eine whil schleife machen.
Dann machst du Thread.Sleep(10000) am ende und dann machst du einfach bei der whil schleife als bedingung (true).

Das denke ich wäre am einfachsten.

Wenn du noch fragen dazu hast kannst du mir gerne eine Pn senden:)
12/06/2012 11:23 Super Aids#9
Something like this?
Code:
static void Refresh(string url, int interval) // interval = seconds
{
   Stream httpStream;
   StreamReader httpReader;		
   HttpWebResponse response;
   WebRequest request;

   while (true)
   {
       	request = WebRequest.Create(url);
	response = (HttpWebResponse)request.GetResponse();
						
	httpStream = response.GetResponseStream();
	httpReader = new StreamReader(httpStream);
	string httpResponse = httpReader.ReadToEnd();

        // do stuff with response perhaps?

       System.Threading.Thread.Sleep(interval * 1000);
   }
}
Ex.

Code:
Refresh("http://google.com/", (5 * 60) /* Every 5 min */);
And if you don't want it to stop the main thread use this:
Code:
new System.Threading.Thread(() => {
Refresh("http://google.com/", (5 * 60) /* Every 5 min */);
}).Start();