Abrufen von Daten zurück von einem HttpWebRequest.BeginGetResponse Rückruf
Ich Schreibe eine app für Windows Phone 8 soll, senden Sie eine GET+POST-Anforderung an einen server und analysieren die Antwort.
Den code, den ich verwende, um die Anfrage zu senden und eine Antwort zu bekommen zurück, ist die folgende (es steht in einem separaten statischen Klasse):
//server to POST to
string url = "http://myserver.com/?page=hello¶m2=val2";
//HTTP web request
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
httpWebRequest.Method = "POST";
//Write the request Asynchronously
using (var stream = await Task.Factory.FromAsync<Stream>(httpWebRequest.BeginGetRequestStream,
httpWebRequest.EndGetRequestStream, null))
{
//Create the post data
string postData = "pseudo=pseudo&titre=test&texte=\"Contenu du message\"";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
//Write the bytes to the stream
await stream.WriteAsync(byteArray, 0, byteArray.Length);
stream.Close();
IAsyncResult ar = httpWebRequest.BeginGetResponse(new AsyncCallback(GetResponsetStreamCallback), httpWebRequest);
}
}
private static void GetResponsetStreamCallback(IAsyncResult callbackResult)
{
HttpWebRequest request = (HttpWebRequest)callbackResult.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(callbackResult);
using (StreamReader httpWebStreamReader = new StreamReader(response.GetResponseStream()))
{
string result = httpWebStreamReader.ReadToEnd();
//For debug: show results
System.Diagnostics.Debug.WriteLine(result);
}
Mein problem ist : ich habe keine Ahnung, wie man diese Antwort (string Ergebnis) wieder in meinen Hintern-code in meine app (oder jede andere Methode in meiner app um ehrlich zu sein).
Wie konnte ich das tun?
Ich fand diesen Artikel. Ich hoffe, dass es für Sie nützlich sein.. codeproject.com/Articles/6554/...
InformationsquelleAutor grumlu | 2013-11-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, den folgenden code,
InformationsquelleAutor Aju
InformationsquelleAutor ElifÖlmez
Muss es sein, eine statische Klasse? Weil, wenn Sie haben ein neues webrequest-Objekt für jede Anfrage, dann werden bei jeder Antwort kommen wieder in, es ist ein eigenes Objekt.v
Müssen Sie das Ergebnis irgendwo, dass Sie von dem Ort, den Sie möchten, es zu benutzen.
z.B. wenn du es in einem anderen öffentlichen, statischen Variablen Mitglied dann Lesen Sie es ab, wo Sie Sie benötigen. Aber Sie wahrscheinlich benötigen, um ein signal UI zu handeln, oder binden Sie es auf das UI.
Wenn Sie eine statische Ort, um es zu speichern, dann haben Sie nur eine zu einem Zeitpunkt aktiv. Es sei denn, Sie es hinzufügen, um eine statische Liste von Elementen oder Ergebnisse, die Sie arbeiten mit
Siehe auch: http://blogs.msdn.com/b/devfish/archive/2011/04/07/httpwebrequest-fundamentals-windows-phone-services-consumption-part-2.aspx
InformationsquelleAutor David d C e Freitas
Können Sie: stellen Sie eine Globale variable in der App.xaml.cs:
public string Ergebnis;
Im code verwenden Sie es als
Wenn Sie benötigen, um benachrichtigt zu werden, in Ihrem aktuell aktiven Seite, wenn das Ergebnis aktualisiert wird - Delegaten verwenden, nachdem Sie die Antwort, die die signal-zu Ihrer Seite.
InformationsquelleAutor Cheese