Analizzare una query URL come oggetto chiave-valore
Questo analizzatore trasforma un URL assoluto completo o una stringa di query grezza in un oggetto strutturato di chiavi e valori.
Esegui gratis nel browser
Decodifica le sequenze percentuali e i segni più dei moduli, conserva i valori vuoti e raccoglie i parametri ripetuti in elenchi rispettandone l’ordine originale. Le sequenze malformate e l’UTF-8 non valido producono un errore esplicito, senza sostituzioni silenziose. Lei può esaminare un collegamento nel browser oppure richiamare l’API deterministica al costo di $0.002 per elemento da applicazioni, test e procedure di acquisizione che richiedono sempre lo stesso risultato.
Scelga il formato di ingresso adatto alla fonte
Lei può inviare un URL assoluto completo, per esempio <code>https://example.com/search?q=red+shoes</code>, una query grezza come <code>q=red+shoes&page=2</code>, oppure la stessa query preceduta da un punto interrogativo. Per un URL assoluto viene analizzata soltanto la componente di query: schema, autorità, percorso e frammento non diventano campi. Un URL senza query restituisce un oggetto dei parametri vuoto. L’ingresso grezzo viene considerato interamente come dati di query, dopo la rimozione di un eventuale punto interrogativo iniziale. Questa forma è utile quando un framework, un registro degli accessi, un webhook o un’API del browser ha già separato la query dal resto dell’indirizzo. Ogni e commerciale apre una nuova coppia, mentre il primo segno uguale divide il nome dal valore. Un nome senza segno uguale viene conservato con una stringa vuota, proprio come un’assegnazione esplicitamente vuota. I segmenti vuoti tra e commerciali consecutive vengono ignorati. Il risultato riporta anche il numero di chiavi distinte e quello delle coppie analizzate, così Lei può distinguere i campi ripetuti da quelli unici senza dover ricontare le proprietà dell’oggetto.
Comprenda la decodifica e le chiavi ripetute
Nomi e valori vengono decodificati separatamente secondo le convenzioni normalmente applicate ai moduli nelle query URL. Un segno più diventa uno spazio, mentre le sequenze <code>%HH</code> vengono interpretate come byte UTF-8. Pertanto <code>city=San+Jos%C3%A9</code> produce testo Unicode leggibile e un separatore codificato come <code>%26</code> resta all’interno di un unico valore, invece di essere scambiato per l’inizio di un altro campo. La decodifica avviene una sola volta: <code>%2520</code> diventa <code>%20</code>, non uno spazio. Quando una chiave compare una volta, il suo valore è una stringa. Se la stessa chiave decodificata ricompare, il valore diventa un elenco contenente tutte le occorrenze nell’ordine della fonte. Questa regola rappresenta gruppi di caselle, filtri, etichette e altre selezioni multiple senza scartare informazioni né inventare proprietà numerate. La ripetizione viene determinata dopo la decodifica, quindi grafie codificate equivalenti dello stesso nome vengono raggruppate. Anche i valori vuoti ripetuti vengono conservati. L’analizzatore non deduce booleani, numeri o date e non interpreta la notazione tra parentesi quadre come oggetti annidati. Tutti i valori scalari restano stringhe, affinché il codice successivo applichi consapevolmente la conversione prevista dal proprio dominio.
Blocchi i dati corrotti prima che entrino nel flusso
Gli analizzatori permissivi possono mantenere un segno di percentuale isolato, accettare una sequenza di una sola cifra oppure inserire un carattere sostitutivo quando i byte codificati non formano UTF-8 valido. Questi comportamenti fanno apparire utilizzabili identificatori danneggiati e creano differenze difficili da diagnosticare tra browser, server e procedure di verifica delle firme. Questa capacità controlla che ogni segno di percentuale sia seguito esattamente da due cifre esadecimali e poi verifica che ogni sequenza di byte decodificata costituisca UTF-8 valido. Se una condizione non è soddisfatta, la richiesta restituisce un errore di ingresso non valido, non un oggetto parziale. L’analisi è pura e deterministica: non accede alla rete, non segue reindirizzamenti, non legge l’orologio, non usa casualità e non conserva stato tra le chiamate. Consideri le stringhe restituite come dati, non come HTML, codice, percorsi di file o espressioni di database affidabili; la decodifica recupera i caratteri, ma non rende sicuro il loro impiego successivo. Nell’automazione, l’API costa $0.002 per elemento e costituisce una fase di normalizzazione stabile prima di validare, instradare, confrontare o archiviare. Nel browser, la stessa logica consente di esaminare rapidamente collegamenti copiati senza contattarne la destinazione.
Casi d'uso
Esaminare un URL copiato
Trasformi un lungo URL di ricerca, campagna o callback in campi leggibili senza aprire né contattare la destinazione.
Normalizzare l’ingresso di un webhook
Analizzi una query grezza prima della convalida specifica dell’applicazione, conservando ogni valore dei parametri ripetuti.
Creare dati di prova deterministici
Verifichi con precisione decodifica, valori vuoti e chiavi ripetute nei test di integrazione e nei processi di acquisizione.
Domande frequenti
Quanto costa una richiesta tramite API?
Ogni elemento analizzato costa $0.002 tramite API. Lo strumento interattivo del browser impiega la stessa logica deterministica.
Che cosa accade se una chiave compare più volte?
Una sola occorrenza produce una stringa. Quando si ripete, il valore diventa un elenco di tutte le occorrenze nell’ordine originale.
I segni più vengono convertiti in spazi?
Sì. Nella comune codifica dei moduli il segno più rappresenta uno spazio. Usi %2B quando deve conservare un segno più letterale.
L’analizzatore deduce numeri o booleani?
No. Ogni valore scalare resta una stringa, inclusi testo vuoto, numeri e true o false. Esegua poi la conversione prevista dal Suo schema.
Quali errori di codifica percentuale vengono rifiutati?
Vengono rifiutati i segni di percentuale senza due cifre esadecimali e le sequenze di byte che non costituiscono UTF-8 valido.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"text": "https://example.com/search?q=red+shoes&tag=sale&tag=new&empty="
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.query_string_parse",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
timeout_sec | 30 |
max_crawl_pages | 25 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |