Lesen Sie die Antwort von HttpClient.GetStringAsync
Arbeite ich an einer Universellen Windows-app mit der neuen runtime für Windows Phone/Store-apps. Ich bin das senden einer Anfrage an einen server mit dem folgenden code, und erwartet, eine HTML-Antwort zurück. Allerdings, wenn ich den string und die Anzeige im UI, er sagt nur:
"- System.Threading.Aufgaben.Aufgabe'1[System.String]"
Ist es nicht, zeigt mir die eigentlichen HTML - /XML zurückgegeben werden sollen. Wenn ich dieselbe URL in ein normales Windows-Forms-Anwendung, es ist die Rückgabe der Daten erwarte ich aber den code, den ich verwenden, es ist anders, weil es noch Win32 nicht WinRT/das neue RT.
Hier ist mein code. Ich vermute, ich bin nicht der Rückgabe der Daten in das richtige format oder etwas, aber ich weiß nicht, was ich tun sollte.
var url = new Uri("http://www.thewebsitehere.com/callingstuff/calltotheserveretc");
var httpClient = new HttpClient();
try
{
var result = await httpClient.GetStringAsync(url);
string checkResult = result.ToString();
httpClient.Dispose();
return checkResult;
}
catch (Exception ex)
{
string checkResult = "Error " + ex.ToString();
httpClient.Dispose();
return checkResult;
}
Task<string>
. Sollten Sie mehr daran interessiert, in dessen Ergebnis Eigenschaft.falls du bist das Los der Kunde dann tun Sie es in einem
using(){}
block. Aber HttpClient ist anders, verwenden Sie ein singleton.InformationsquelleAutor irldev | 2015-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass das problem in diesem code-snippet, aber in der Anrufer. Ich vermute, dass dieser code in einer Methode zurückgeben einer Aufgabe (richtig so, dass der Anrufer warten kann, bis diese Methode die HttpClient-Aufruf zu arbeiten), sondern dass der Anrufer nicht erwartet es.
Den code-snippet korrekt aussieht und im wesentlichen die gleichen wie in den docs bei https://msdn.microsoft.com/en-us/library/windows/apps/windows.web.http.httpclient.aspx . GetStringAsync gibt Task zurück. Das warten auf die Bearbeitung einer Aufgabe Teil und wird wieder eine Zeichenfolge in var Ergebnis. Wenn Sie eine Pause innerhalb der Funktion an und untersuchen Sie das Ergebnis oder checkResult, werden Sie die gewünschten Zeichenfolgen.
Das gleiche passieren muss, um mit dem Anrufer. Wenn dies in einer Funktion
Dann muss es aufgerufen werden warten, um die Zeichenfolge anstatt auf die Aufgabe und warten auf die GetData internen warten zu beenden:
Die einzige Zeit, die Sie würden nicht erwarten der Aufgabe ist, müssen Sie zum Bearbeiten der Aufgabe selbst und nicht nur das Ergebnis zu erhalten.
Eigentlich war es eine Kombination der beiden Antworten. Ich brauchte, um die Ergebnisse zu betrachten-Eigenschaft und auch ich mußte einen warten, für den Aufruf der Methode.
guter Fang... gleiche problem für mich.. eine Stunde verschwendet..
InformationsquelleAutor Rob Caplan - MSFT