Gå til indholdet

N295 Async (async/await)

I denne opgave skal du hente et tilfældigt tal fra random.org, og gemme dette i en fil - men begge ting skal ske asynkront!

  • Start med at skabe en tom .net konsol applikation
  • Hent ved hjælp af HttpClient’s (HttpClient w = new HttpClient();) GetStringAsync fra metode en streng med et tal fra https://www.random.org/integers/?num=1&min=10&max=100&col=1&base=10&format=plain&rnd=new
    • Det kan være nødvendigt at “snyde” serveren til at tro at forespørgslen kommer fra en browser. Brug evt. DefaultRequestHeaders.Add("User-Agent", "Chrome")HttpClient objektet.
  • Gem tallet i en fil på disken ved hjælp af AppendAllTextAsync fra System.IO.File

Tip

Du kan eventuelt benytte WPF for bedre at kunne se, at programmet ikke fryser under hentning af tallet. Find en skabelon på devcronberg/wpf-placeholder.

Klik for at se et forslag til en løsning
string url = "https://www.random.org/integers/?num=1&min=1&max=6&col=1&base=10&format=plain&rnd=new";

HttpClient w = new HttpClient();
w.DefaultRequestHeaders.Add("User-Agent", "Chrome");

Console.WriteLine("Henter tal");
string tal = await w.GetStringAsync(url);
Console.WriteLine("Tal hentet");
await System.IO.File.AppendAllTextAsync(@"c:\temp\tal.txt", tal);
Console.WriteLine("Tal gemt");