HTTP pomocí C#

Upozornění: Tato stránka není optimalizována pro mobilní telefony a pro zařízení s menší obrazovkou. Některé prvky mohou být příliš malé nebo jinak nefunkční.

V této kapitole si ukážeme síťování v C# pomocí HTTP nebo HTTPS protokolu. Hodí se nám to, pokud potřebujeme získávat nějaká data z internetu, většinou data co se mohou měnit.

Kód, který nám stáhne obsah nějakého odkazu může vypadat například následujícím způsobem:

string text;
int cislo;
HttpClient client = new HttpClient();
text = client.GetStringAsync("https://raw.githubusercontent.com/filip2cz/network-info/main/ver").Result;
cislo = int.Parse(text);
Console.WriteLine(cislo - 1);

Tento kód dělá následující věci:
int latestVersion; vytvoří proměnou typu int s názvem latestVersion
HttpClient client = new HttpClient(); tímto způsobem spustíme webový client obsažený v C#, jenž nám umožní stahovat data z internetu pomocí http nebo https protokolu. Instanci tohoto webového clientu, kterou jsme si vytvořili, jsme pojmenovali client, může se jmenovat dle vašeho uvážení.
text = client.GetStringAsync("https://raw.githubusercontent.com/filip2cz/network-info/main/ver").Result; uloží do proměnné text obsah stránky.
cislo = int.Parse(text); převede již dříve stažený obsah stránky, neboli proměnnou text do int, abychom s ním mohli počítat jako s číslem.
Console.WriteLine(cislo - 1); nakonec vypíšeme číslo, které jsme stáhli z internetu o 1 menší.

Pro úsporu textu se dá tento kód zkrátit následujícím způsobem:

HttpClient client = new HttpClient();
int cislo = int.Parse(client.GetStringAsync("https://raw.githubusercontent.com/filip2cz/network-info/main/ver").Result);
Console.WriteLine(cislo - 1);

Zadání

Zkuste ze stránky https://www.random.org/integers/?num=1&min=10&max=60&col=1&base=10&format=plain&rnd=new stáhnout číslo a po té ho vydělit číslem ze stránky https://www.random.org/integers/?num=1&min=1&max=6&col=1&base=10&format=plain&rnd=new. Nezapomeňte, že výsledek nemusí být celé číslo, takže je vhodné použít jiný datový typ než int.

Příliš snadné?

Doplňující úloha je dneska logického charakteru. Můžete ji dělat v jakémkoliv jazyku chcete, pokud preferujete něco jiného než C#, ale možná vám nebudu poté schopen pomoct s řešením nebo s problémy, pokud si vyberete něco co neznám. Máte dvě číselné proměnné X a Y. Úkol je prohodit je bez toho, aby jste na to použili nějakou existující funkci, nebo aby jste použili jinou proměnnou, ukládání do souboru, nebo jakýkoliv jiný způsob ukládání dat kamkoliv a jakkoliv, než jsou tyto dvě proměnné. Řešení je čistě matematická záležitost.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace playground_dotnet_framework
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int x = 3;
            int y = 5;

            Console.WriteLine("Input:");
            Console.WriteLine($"x = {x}");
            Console.WriteLine($"y = {y}");

            x = x + y;
            y = x - y;
            x = x - y;

            Console.WriteLine("--------------");

            Console.WriteLine("Output:");
            Console.WriteLine($"x = {x}");
            Console.WriteLine($"y = {y}");

            Console.ReadLine();
        }
    }
}