[Silverlight] HTTPRequest

Cromon

Erfahrenes Mitglied
Hallo zusammen!

Ich habe da ein kleines Problem mit einem HttpRequest, wie der Titel schon erahnen lässt!

Hier mal die Situation:
Ich habe eine Datei counter.txt in der eine Zahl steht. Beim Laden der Silverlightapplikation fragt sie vom Server den Inhalt dieser Datei ab und stellt die Zahl dar. Das funktioniert ganz gut!

Nun soll aber beim Drücken auf den Downloadbutton die counter.php aufgerufen werden, welche die Zahl in der Datei um 1 erhöht. Das soll geschehen, ohne dass die Seite aufgerufen werden muss. Ich hab diverse Beispiele im Web gesehen, funktioniert hat irgendwie keines. Hier mal mein letzter Versucht:
Code:
 void B1Click(object sender, RoutedEventArgs e)
{
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri("http://meineseite.de/counter.php"));
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            req.BeginGetRequestStream(new AsyncCallback(ContinueGettingResponse), req);
}

        void ContinueGettingResponse(IAsyncResult asyncRes)
        {
            MessageBox.Show("Blubb");
            System.Net.HttpWebRequest httpRequest = (System.Net.HttpWebRequest)asyncRes.AsyncState;
            System.IO.StreamWriter postdateWriter = new System.IO.StreamWriter(httpRequest.EndGetRequestStream(asyncRes), System.Text.Encoding.Unicode);
            postdateWriter.Write("test=test");
            postdateWriter.Close();
            httpRequest.BeginGetResponse(new AsyncCallback(RetriveResponseAsync), httpRequest);
        }

        void RetriveResponseAsync(IAsyncResult asyncRes)
        {
            System.Net.HttpWebRequest httpRequest = (System.Net.HttpWebRequest)asyncRes.AsyncState;
            System.Net.HttpWebResponse httpResponse = (System.Net.HttpWebResponse)httpRequest.EndGetResponse(asyncRes);
            System.IO.StreamReader myReader = new System.IO.StreamReader(httpResponse.GetResponseStream());
            MessageBox.Show(myReader.ReadToEnd());
            DataLoader dl = new DataLoader("counter.txt");
            dl.DataLoaded += new DataLoader.DataLoadedEventHandler(dl_DataLoaded);
        }

Ich habe absichtlich die MessageBox eingebaut um zu schauen, ob was passiert. Fakt ist nun, dass die MessageBox nicht angezeigt wird und offensichtlich die counter.php nicht aufgerufen wird, da sich an der Zahl nichts ändert.

Weiss jemand von euch vielleicht Rat?

Gruss
Cromon
 
Zurück