URL-Query-String als Schlüssel-Wert-Objekt auslesen
Dieser Parser wandelt eine vollständige absolute URL oder einen rohen Query-String in ein strukturiertes Schlüssel-Wert-Objekt um.
Im Browser ausführen – kostenlos
Er dekodiert Prozentsequenzen und Pluszeichen aus Formularen, bewahrt leere Werte und fasst wiederholte Parameter in ihrer ursprünglichen Reihenfolge zu Listen zusammen. Fehlerhafte Escape-Sequenzen und ungültiges UTF-8 führen zu einer eindeutigen Fehlermeldung, statt Zeichen unbemerkt zu ersetzen. Sie können einen Link direkt im Browser untersuchen oder die deterministische API für $0.002 pro Element in Anwendungen, Tests und Importabläufen aufrufen, die stets dasselbe Ergebnis benötigen.
Wählen Sie die passende Eingabeform für Ihre Quelle
Sie können eine vollständige absolute URL wie <code>https://example.com/search?q=red+shoes</code>, einen rohen Query-String wie <code>q=red+shoes&page=2</code> oder denselben Query-String mit einem vorangestellten Fragezeichen übergeben. Bei einer absoluten URL wird ausschließlich der Abfrageteil ausgewertet; Schema, Autorität, Pfad und Fragment werden nicht zu Feldern. Eine URL ohne Abfrage ergibt ein leeres Parameterobjekt. Eine rohe Eingabe gilt nach dem Entfernen eines optionalen anfänglichen Fragezeichens vollständig als Abfragedaten. Das ist praktisch, wenn ein Framework, ein Zugriffsprotokoll, ein Webhook oder eine Browser-API die Abfrage bereits von der übrigen Adresse getrennt hat. Jedes kaufmännische Und beginnt ein neues Paar, während das erste Gleichheitszeichen den Namen vom Wert trennt. Ein Name ohne Gleichheitszeichen bleibt mit einem leeren Wert erhalten, ebenso eine ausdrücklich leere Zuweisung. Leere Abschnitte zwischen aufeinanderfolgenden Trennzeichen werden ignoriert. Das Ergebnis nennt außerdem die Anzahl unterschiedlicher Schlüssel und ausgewerteter Paare. So erkennen Sie Wiederholungen, ohne die Eigenschaften des Objekts selbst erneut zählen zu müssen.
Verstehen Sie Dekodierung und wiederholte Schlüssel
Namen und Werte werden getrennt nach den üblichen Regeln für Formulardaten in URL-Abfragen dekodiert. Ein Pluszeichen wird zu einem Leerzeichen, während Folgen der Form <code>%HH</code> als UTF-8-Bytes interpretiert werden. Dadurch entsteht aus <code>city=San+Jos%C3%A9</code> lesbarer Unicode-Text, und ein als <code>%26</code> kodiertes Trennzeichen bleibt Bestandteil eines einzelnen Werts, statt fälschlich ein weiteres Feld zu beginnen. Die Dekodierung erfolgt genau einmal: <code>%2520</code> wird zu <code>%20</code> und nicht zu einem Leerzeichen. Kommt ein Schlüssel einmal vor, ist sein Wert eine Zeichenfolge. Sobald derselbe dekodierte Schlüssel erneut erscheint, wird daraus eine Liste mit allen Vorkommen in der Reihenfolge der Quelle. Damit lassen sich Kontrollkästchengruppen, Filter, Schlagwörter und andere Mehrfachauswahlen darstellen, ohne Angaben zu verlieren oder nummerierte Eigenschaften zu erfinden. Wiederholungen werden erst nach dem Dekodieren erkannt, sodass gleichwertige kodierte Schreibweisen desselben Namens zusammengeführt werden. Auch wiederholte leere Werte bleiben erhalten. Der Parser leitet weder boolesche Werte, Zahlen oder Datumsangaben ab noch deutet er eine Klammerschreibweise als verschachtelte Objekte. Alle Einzelwerte bleiben Zeichenfolgen, damit nachgelagerter Code bewusst die fachlich richtige Umwandlung vornehmen kann.
Stoppen Sie beschädigte Daten vor der Weiterverarbeitung
Großzügige Parser behalten mitunter ein einzelnes Prozentzeichen bei, akzeptieren einstellige Escape-Folgen oder setzen ein Ersatzzeichen ein, wenn die kodierten Bytes kein gültiges UTF-8 ergeben. Beschädigte Kennungen wirken dadurch verwendbar, und zwischen Browser, Server sowie einer Signaturprüfung entstehen schwer nachvollziehbare Unterschiede. Diese Funktion verlangt nach jedem Prozentzeichen genau zwei Hexadezimalziffern und prüft anschließend, ob jede dekodierte Bytefolge gültiges UTF-8 bildet. Schlägt eine Prüfung fehl, liefert die Anfrage einen Fehler für ungültige Eingaben und kein unvollständiges Objekt. Der Parser arbeitet rein und deterministisch: Er greift nicht auf das Netzwerk zu, folgt keiner Weiterleitung, liest keine Uhr, verwendet keinen Zufall und bewahrt zwischen Aufrufen keinen Zustand. Behandeln Sie zurückgegebene Zeichenfolgen als Daten und nicht als vertrauenswürdiges HTML, Programmcode, Dateipfade oder Datenbankausdrücke. Das Dekodieren stellt Zeichen wieder her, macht deren spätere Verwendung jedoch nicht automatisch sicher. In automatisierten Abläufen kostet die API $0.002 pro Element und dient als stabiler Normalisierungsschritt vor Prüfung, Weiterleitung, Vergleich oder Speicherung. Im Browser untersuchen Sie kopierte Links mit derselben Logik, ohne deren Ziel aufzurufen.
Anwendungsfälle
Eine kopierte URL untersuchen
Wandeln Sie eine lange Such-, Kampagnen- oder Callback-URL in lesbare Felder um, ohne das Ziel zu öffnen oder aufzurufen.
Webhook-Eingaben normalisieren
Lesen Sie eine rohe Abfrage vor Ihrer anwendungsspezifischen Prüfung aus und behalten Sie sämtliche wiederholten Parameterwerte bei.
Deterministische Testdaten erstellen
Prüfen Sie Dekodierung, leere Werte und wiederholte Schlüssel exakt in Integrationsprüfungen und Importabläufen.
Häufige Fragen
Was kostet eine API-Anfrage?
Jedes ausgewertete Element kostet über die API $0.002. Das interaktive Browserwerkzeug verwendet dieselbe deterministische Logik.
Was geschieht, wenn ein Schlüssel mehrfach vorkommt?
Ein einzelnes Vorkommen ergibt eine Zeichenfolge. Bei Wiederholung wird der Wert zu einer Liste aller Vorkommen in ursprünglicher Reihenfolge.
Werden Pluszeichen in Leerzeichen umgewandelt?
Ja. Bei der üblichen Formularkodierung steht ein Pluszeichen für ein Leerzeichen. Verwenden Sie %2B für ein wörtliches Pluszeichen.
Erkennt der Parser Zahlen oder boolesche Werte automatisch?
Nein. Jeder Einzelwert bleibt eine Zeichenfolge, auch leerer Text, Zahlen sowie true oder false. Wandeln Sie ihn danach gemäß Ihrem Schema um.
Welche Fehler der Prozentkodierung werden abgelehnt?
Abgelehnt werden Prozentzeichen ohne zwei Hexadezimalziffern sowie Bytefolgen, die kein gültiges UTF-8 bilden.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/web/query-string-parse \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"https://example.com/search?q=red+shoes&tag=sale&tag=new&empty="}'const res = await fetch("https://api.kit.forhosting.com/web/query-string-parse", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "https://example.com/search?q=red+shoes&tag=sale&tag=new&empty="
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/query-string-parse",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "https://example.com/search?q=red+shoes&tag=sale&tag=new&empty="
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/query-string-parse", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"https://example.com/search?q=red+shoes&tag=sale&tag=new&empty="}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"https://example.com/search?q=red+shoes&tag=sale&tag=new&empty="}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/query-string-parse", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "https://example.com/search?q=red+shoes&tag=sale&tag=new&empty="
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.query_string_parse",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
timeout_sec | 30 |
max_crawl_pages | 25 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |