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?
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?