Nuova API Web ASP.NET HttpClient mi ha dato alcuni strani risultati. Ecco il mio codice:HttpClient GetStringAsync - Non torna mai
class Program {
static async void Main(string[] args) {
var address = "http://localhost:3895/api/urls";
Console.WriteLine(await getStringAsync(address));
Console.ReadLine();
}
public static async Task<string> getStringAsync(string uri) {
var httpClient = new HttpClient();
return await httpClient.GetStringAsync(uri);
}
}
Questo non ritorna mai e la console appare improvvisamente e scompare. Quando cambio il codice come sotto, funziona come si suppone:
static void Main(string[] args) {
var address = "http://localhost:3895/api/urls";
Console.WriteLine(getString(address));
Console.ReadLine();
}
public static string getString(string uri) {
var httpClient = new HttpClient();
return httpClient.GetStringAsync(uri).Result;
}
Qualche idea su quale sarebbe il problema?
Questo non viene nemmeno compilato. Un punto di ingresso ('Main') non può essere asincrono. Fallirà con l'errore CS4009. – vcsjones
@vcsjones Nel CTP asincrono è consentito (ma una cattiva idea) – hvd
@hvd Interessante. Meglio che ora lo rifiutano. – vcsjones