2016-05-06 9 views
0

Hier ist der Code -Warten auf httpclient

VERSION 3: Entfernen Sie r.result und es funktioniert immer noch nicht.

Der warten Aufruf, um den Benutzernamen und das Passwort zu posten und ein Token erhalten nie zurück.

Mache ich etwas falsch?

+0

Da Ihre Methode bereits asynchron ist, ist es nicht sinnvoll, 'Task.Run()' zu verwenden. – SLaks

+0

versuchen Sie diese Methode stattdessen 'öffentliche async Aufgabe PerformLogin() { var r = erwarten DoLogin (_username, _password)); if (r.Result.IsSuccessStatusCode) { // tun Erfolg Sachen } sonst { return "Nein Auth"; } zurück "Ok"; } ' –

Antwort

1

Sie greifen auf den UI-Thread auf r.Result zu, der die Aufgabe blockiert.
Dies erstellt einen Deadlock, da der innere await versucht, auf dem UI-Thread wieder aufzunehmen.

Sie müssen stattdessen await es.

+0

Ich restrukturierte dies und entfernt r.Result und es funktioniert immer noch nicht. Siehe meine Updates oben. – duckmike

+0

Warum nicht? Was geschieht? Was haben Sie gemacht? – SLaks

+0

Meine Änderungen sind oben .. Ich kann beweisen, dass nach aa = JsonConvert.DeserializeObject ... aa ist leer – duckmike