HttpWebient API Web ASP.NET mới đã mang lại cho tôi một số kết quả lạ. Đây là mã của tôi:HttpClient GetStringAsync - Nó không bao giờ trở lại
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);
}
}
Điều này không bao giờ trở lại và bảng điều khiển đột nhiên xuất hiện và biến mất. Khi tôi thay đổi mã như dưới đây, nó hoạt động như được cho là:
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;
}
Bất kỳ ý tưởng nào về vấn đề này sẽ là gì?
Điều đó thậm chí không biên dịch được. Một điểm vào ('Main') không thể không đồng bộ. Nó sẽ thất bại với lỗi CS4009. – vcsjones
@vcsjones Trong CTP Async được phép (nhưng ý tưởng tồi) – hvd
@hvd Thú vị. Tốt nhất là họ không cho phép nó ngay bây giờ. – vcsjones