Meine Methode ruft einen Webdienst auf und arbeitet asynchron.So geben Sie eine Zeichenfolge von async zurück
Wenn Antwort, alles funktioniert gut und ich bekomme meine Antwort.
Das Problem beginnt, wenn ich diese Antwort zurückgeben muss.
hier ist der Code meiner Methode:
public async Task<string> sendWithHttpClient(string requestUrl, string json)
{
try
{
Uri requestUri = new Uri(requestUrl);
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Clear();
...//adding things to header and creating requestcontent
var response = await client.PostAsync(requestUri, requestContent);
if (response.IsSuccessStatusCode)
{
Debug.WriteLine("Success");
HttpContent stream = response.Content;
//Task<string> data = stream.ReadAsStringAsync();
var data = await stream.ReadAsStringAsync();
Debug.WriteLine("data len: " + data.Length);
Debug.WriteLine("data: " + data);
return data;
}
else
{
Debug.WriteLine("Unsuccessful!");
Debug.WriteLine("response.StatusCode: " + response.StatusCode);
Debug.WriteLine("response.ReasonPhrase: " + response.ReasonPhrase);
HttpContent stream = response.Content;
var data = await stream.ReadAsStringAsync();
return data;
}
}
}
catch (Exception ex)
{
Debug.WriteLine("ex: " + ex.Message);
return null;
}
und ich es so nenne:
Task <string> result = wsUtils.sendWithHttpClient(fullReq, "");
Debug.WriteLine("result:: " + result);
aber beim Drucken Ergebnis, das ich so etwas wie dieses sehe: System.Threading.Tasks.Task
Wie kann ich die Ergebniszeichenfolge wie ich mit Daten innerhalb meiner Methode erhalten.
müssen Sie auf die 'Result'-Eigenschaft Ihrer' Task' zugreifen, um die gewünschte Ausgabe zu erhalten. –