Laden...

WindowsPhone7.5 - daten an ein php script senden

Erstellt von Coooder vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.000 Views
Thema geschlossen
C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 11 Jahren
WindowsPhone7.5 - daten an ein php script senden

hi leute,

ich versuche grad ein Login zu schreiben, also ich stell mir das so vor

user gibt name und psw in sein Phone ein -> Phone sendet die daten an ein php-script -> php wertet es aus und schickt antwort an das Phone

nun hab ich versucht das über die WebRequest klasse zu machen (so wie in der msdn) musste aber festellen das scheinbar in der .NET-compact version das so nicht geht (z.B. kann ich die ContentLengh nich setzten usw.). Habe auch leider kein geeignetes beispiel gefunden 😕
weiss jemand vieleicht besser wie ich mich da ran wagen soll?

3.511 Beiträge seit 2005
vor 11 Jahren

Hallo,

laut MSDN müsste es mit der WebClient Klasse hinhauen.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 11 Jahren

hat mir leider nich geholfen, ich hab das beispiel versucht, aber das kann man so auch nicht übernehmen, man kann ja schon allein so ein Header nich hinzufügen wie es dort gezeigt wird 😕

ich habs jetzt mal so probiert: (quelle: http://msdn.microsoft.com)

private ManualResetEvent allDone = new ManualResetEvent(false);

        public Login()
        {
            InitializeComponent();
        }

        private void loginBtn_Click(object sender, RoutedEventArgs e)
        {
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://blablabla/bla.php");
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            req.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), req);
            allDone.WaitOne();
        }

        private void GetRequestStreamCallback(IAsyncResult asynchronousResult)
        {
            HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;

            // End the operation
            Stream postStream = request.EndGetRequestStream(asynchronousResult);

            string postData = "test!123";

            // Convert the string into a byte array.
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);

            // Write to the request stream.
            postStream.Write(byteArray, 0, postData.Length);
            postStream.Close();

            // Start the asynchronous operation to get the response
            request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
        }
        // hier springt er nie rein
        private void GetResponseCallback(IAsyncResult asynchronousResult)
        {
            HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;

            // End the operation
            HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
            Stream streamResponse = response.GetResponseStream();
            StreamReader streamRead = new StreamReader(streamResponse);
            string responseString = streamRead.ReadToEnd();
     
            // Close the stream object
            streamResponse.Close();
            streamRead.Close();

            // Release the HttpWebResponse
            response.Close();
            allDone.Set();
        }

jedoch bleibt dabei die anwendung die ganze zeit blockiert und scheint auf eine antwort zu warten die aber offensichtlich nich eintrifft ... was wohl daran liegt das er auch nie in die GetResponseCallback Methode reinspringt 😕

jemand ne idee woran das liegt? oder von mir aus auch ne anderen lösungsweg?

1.346 Beiträge seit 2008
vor 11 Jahren
Thema geschlossen