Ich arbeite an einer Android-Anwendung, die von einer ASP.NET Core-Anwendung auf Azure gehostet wird. Ich verwende ein gemeinsam genutztes Bibliotheksprojekt, um grundlegende Funktionen in einem Konsolenanwendungsprojekt zu testen, bevor ich die Funktionen für das Xamarin.Forms-Projekt (nur für Android) herstelle.
Code Das folgende Stück nach Einloggen in den Web-Service ausgeführt wird, wo Client
ein HttpClient
ist:HttpClient.GetAsync kehrt nie auf Xamarin.Android zurück
public static async Task<MyClass> GetInformationAsync(string accountId)
{
HttpResponseMessage response = await Client.GetAsync(UriData + "/" + accountId);
response.EnsureSuccessStatusCode();
string responseContent = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<MyClass>(responseContent);
}
Unter dem gleichen Computer/Netzwerk, beendet der Code in weniger als eine Sekunde auf der Konsolenanwendung es endet jedoch nie (sogar eine Minute gewartet) in dem Projekt Xamarin.Forms.Android
.
Ich finde das komisch, da sich der Android-Client erfolgreich mit PostAsync
am Web-Service anmelden kann.
Es gibt jedoch einen Unterschied, wie der Android-Client und der Console-Client GetInformationAsync
aufrufen.
Während die Konsolen-Client ruft sie asynchron:
private static async void TestDataDownload()
{
...
var data = await WebApiClient.GetInformationAsync(myId);
}
Der Android-Client es synchron
public void MainPage()
{
...
var data = WebApiClient.GetInformationAsync(myId).Result;
}
Sind Sie lokale Host oder lokale IP-Adresse verwenden? –
@AthulHarikumar der Web-Service wird auf einer kostenlosen Instanz von Azure Web Apps gehostet –