====== std.url ====== URL-Parsing gemäß RFC 3986 in alle Komponenten: Scheme (''http'', ''https'', ''ftp'' etc.), Benutzername, Passwort, Hostname, Port, Pfad, Query-String und Fragment. Prozent-Kodierung (''Encode'') und -Dekodierung (''Decode'') für URL-sichere Zeichenübertragung, URL-Validierung, Query-Parameter-Zugriff (''GetQueryParam'', ''HasQueryParam'') und URL-Zusammenbau (''Build''). Einsatzbereiche: HTTP/HTTPS-Clients, Web-Scraping, API-Gateway-Implementierungen, SEO-Analyse (URL-Struktur, Canonical-URLs, Redirects), OAuth-Callback-Verarbeitung. **Autor:** Andreas Röne\\ **Copyright:** 2024-2025 Andreas Röne ---- ===== Imports ===== * ''[[lyx_-_programmiersprache:units:string|std.string]]'' ---- ===== Typen ===== ==== URL (struct) ==== ^ Feld ^ Typ ^ | ''scheme'' | ''pchar'' | | ''username'' | ''pchar'' | | ''password'' | ''pchar'' | | ''hostname'' | ''pchar'' | | ''port'' | ''int64'' | | ''path'' | ''pchar'' | | ''query'' | ''pchar'' | | ''fragment'' | ''pchar'' | ---- ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Sichtbarkeit ^ | ''DEFAULT_HTTP_PORT'' | ''int64'' | ''80'' | pub | | ''DEFAULT_HTTPS_PORT'' | ''int64'' | ''443'' | pub | ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''FindStr(haystack: pchar, needle: pchar): int64'' | priv | Sucht Teilstring intern | | ''CopyStr(dest: pchar, src: pchar, max_len: int64): int64'' | priv | Kopiert String mit Längenbegrenzung | | ''FindChar(s: pchar, c: int64): int64'' | priv | Sucht Zeichen in String intern | | ''findSchemeEnd(url: pchar): int64'' | priv | Findet Ende des URL-Schemas | | ''findAt(url: pchar, start: int64): int64'' | priv | Findet @-Trennzeichen in URL | | ''findHostEnd(url: pchar, start: int64): int64'' | priv | Findet Ende des Hostname-Teils | | ''Parse(url_str: pchar, result: pchar): int64'' | pub | Zerlegt URL in alle Komponenten | | ''GetScheme(url: pchar): pchar'' | pub | Gibt URL-Schema zurück | | ''GetHostname(url: pchar): pchar'' | pub | Gibt Hostname zurück | | ''GetPort(url: pchar): int64'' | pub | Gibt Port-Nummer zurück | | ''GetPath(url: pchar): pchar'' | pub | Gibt URL-Pfad zurück | | ''GetQuery(url: pchar): pchar'' | pub | Gibt Query-String zurück | | ''GetFragment(url: pchar): pchar'' | pub | Gibt Fragment-Bezeichner zurück | | ''GetUsername(url: pchar): pchar'' | pub | Gibt Benutzernamen zurück | | ''GetPassword(url: pchar): pchar'' | pub | Gibt Passwort zurück | | ''Build('' | pub | Baut URL aus Komponenten zusammen | | ''IsValid(url: pchar): bool'' | pub | Prüft ob URL gültig ist | | ''IsValidScheme(scheme: pchar): bool'' | pub | Prüft ob Schema gültig ist | | ''IsValidHostname(hostname: pchar): bool'' | pub | Prüft ob Hostname gültig ist | | ''urlEncodeChar(c: int64): int64'' | priv | Kodiert einzelnes Zeichen URL-sicher | | ''Encode(input: pchar, output: pchar): int64'' | pub | Prozent-kodiert String URL-sicher | | ''Decode(input: pchar, output: pchar): int64'' | pub | Dekodiert prozent-kodierten String | | ''Equals(url1: pchar, url2: pchar): bool'' | pub | Vergleicht zwei URLs auf Gleichheit | | ''findQueryParamValue(query: pchar, name: pchar, name_len: int64): int64'' | priv | Findet Query-Parameter-Wert intern | | ''GetQueryParam(query: pchar, name: pchar): pchar'' | pub | Liest Query-Parameter nach Name | | ''HasQueryParam(query: pchar, name: pchar): bool'' | pub | Prüft ob Query-Parameter vorhanden |