Ich schreibe eine Methode, die JSON-Daten zurückgibt, indem eine GET-Anforderung an eine RestApi-URL gesendet wird. Wenn ich die Anwendung im Debug-Modus laufe, erhalte ich als Reaktion Daten.ASP.NET HTTPClient Abrufen des Anforderungsstatus Warten auf Aktivierung
Id = 337, Status = WaitingForActivation, Method = "{null}", Result = "{Not yet computed}"
Hier ist mein Code:
public class Methods
{
public static async Task<JObject> Get(string url, string username, string password)
{
var credentials = new NetworkCredential(username, password);
HttpClientHandler handler = new HttpClientHandler { Credentials = credentials };
HttpClient client = new HttpClient(handler);
// client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.GetAsync(url);
if (response.IsSuccessStatusCode)
{
return JObject.Parse(await response.Content.ReadAsStringAsync());
}
return new JObject { response.StatusCode };
}
}
Hier ist meine Ansicht, wo ich Daten zuzugreifen versuchen:
public IActionResult Index()
{
// Methods RestMethod = new Methods();
var data = Methods.Get("http://url/products", "domain\userid", "Password");
return View();
}
Wenn ich hinzufügen Debug im Hinblick auf var data = .....
das ist, wo Ich bekomme waiting for activation
.
Jede Hilfe wird wirklich geschätzt. :)
Danke,
Ray
Richtig, also warten Sie derzeit nicht auf die Aufgabe ... bedenken Sie, dass 'data' die Aufgabe ist, nicht das' JObject'. –
hmm .. also muss ich 'erwarten 'wie folgt hinzufügen' var data = await Methods.Get() '? – Ray
Ich vermute ja, ja - was bedeutet, dass Ihre "Index" -Methode auch async sein muss. –