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
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 |
