URL-bygger
Saml en URL fra en JSON-konfig — encoding klaret, gentagne nøgler understøttet
Konfig (JSON)
URL
Hvad er URL-byggeren?
Du afleverer et JSON-objekt der beskriver delene i en URL — protokol, host, sti, query-parametre, hash — og værktøjet giver dig den samlede URL retur, korrekt percent-encoded. Under motorhjelmen bruger den browserens indbyggede URL-API, så outputtet matcher præcis hvad en browser ville producere, hvis du selv byggede URL'en i JavaScript.
Grunden til at den findes: at bygge en URL i hånden er der hvor bugs gemmer sig. Du glemmer at encode et mellemrum i et kundenavn, du dobbelt-encoder en skråstreg der allerede var encodet, du blander ? og & sammen, du mister en værdi fordi du brugte + i stedet for %20. WHATWG URL-specifikationen definerer præcis ét rigtigt svar for hvert input, og det er hvad du får her. Gentagne query-nøgler (f.eks. tag=red&tag=blue) understøttes ved at give et array — samme form URLSearchParams accepterer.
Det hele kører i din browser. JSON-konfigen og den samlede URL forlader aldrig din maskine. Encoding-reglerne kommer direkte fra RFC 3986 og WHATWG-forfiningerne ovenpå. Kombinér med URL-parseren når du vil sende en URL frem og tilbage gennem en struktureret formular.
Sådan bruger du URL-byggeren
Tre trin. Hvert trin svarer til en knap på siden.
Indsæt en JSON-konfig
Indsæt et JSON-objekt til venstre der beskriver URL-delene. protocol og host er påkrævet; resten er valgfrit. Klik på Eksempel for at indlæse et realistisk tilfælde med flere query-parametre og en hash:
{
"protocol": "https",
"host": "api.shop.example.com",
"pathname": "/v1/orders",
"searchParams": {
"customer": "Ava Chen",
"status": "active",
"total[gte]": "49.99",
"page": "2"
},
"hash": "summary"
}Valgfrie felter: port, username, password, hash. Inde i searchParams er en streng én værdi; et array er gentagne nøgler.
Læs den samlede URL
Højre panel viser den samlede URL-streng. Mellemrum bliver til + i query-strengen, firkantede parenteser bliver til %5B/%5D, stien normaliseres — samme encoding som URL-standarden definerer. Opdaterer mens du skriver.
Kopier eller download
Klik på Kopier for at sende URL'en til din udklipsholder, eller Download for at gemme den som en tekstfil. Brug Ryd i input-panelet for at starte forfra.
Hvornår du faktisk ville bruge det her
Lave test-fixtures til en HTTP-klient
Du skriver en test der rammer /v1/orders med otte query-parametre, hvor to indeholder mellemrum og én er gentaget. At taste den encodede URL i hånden ind i testen er en garanti for fejl. Byg den fra et JSON-objekt du kan kopiere fra en rigtig request-log, og indsæt den resulterende URL i assertionen. Færdig.
Bygge OAuth-authorize-URL'er
OAuth-authorize-URL'er propper client_id, redirect_uri, scope, state, response_type og code_challenge ind i query-strengen. RFC 6749 kræver præcis de parameternavne og en redirect_uri der allerede er encoded én gang før hele URL'en encodes igen. Byggeren håndterer det transparent — du giver den de rå værdier, og den gør det rigtige.
Generere analytics- eller share-URL'er i et script
Når du genererer en kampagne-URL med UTM-parametre, kommer værdierne ofte fra et regneark hvor utm_campaign indeholder mellemrum, ampersands og en sjælden emoji. At lade URL-konstruktøren håndtere encoding er sikrere end en streng-skabelon. Outputtet er identisk med hvad Nodes URL-modul ville producere.
Genskabe en bug fra en supportsag
En kunde rapporterer at en søgning med q=résumé writer giver 500 på API'et. Du vil genskabe præcis samme request. Byg URL'en fra JSON, og kør curl mod den. Accenten på e'et og mellemrummet bliver begge encoded sådan som browseren ville have sendt dem — uden gætteri.
Almindelige spørgsmål
Hvad er forskellen på URL-byggeren og at lime strenge sammen selv?
Encoding. https://api.example.com/orders?customer=Ava Chen er ikke en gyldig URL — mellemrummet ødelægger den. Byggeren bruger internt URLSearchParams, der encoder det mellemrum som + i query og som %20 i stien. Hjemmelavet streng-sammenkædning rammer ved siden af på en af dem før eller siden.
Hvordan sender jeg en query-parameter to gange (f.eks. ?tag=red&tag=blue)?
Brug et array som værdi: "tag": ["red", "blue"]. Byggeren udskriver tag=red&tag=blue i den rækkefølge du gav. Det matcher URLSearchParams-specen.
Skal jeg have kolonet efter protokollen (https:) med, eller bare https?
Begge dele virker. Byggeren normaliserer både "protocol": "https" og "protocol": "https:" til https:. Samme for http, ftp, mailto og brugerdefinerede schemes.
Kan jeg inkludere credentials (brugernavn/adgangskode) i URL'en?
Ja — sæt "username" og "password" i konfigen. De vises før hosten som user:pass@host. Vær dog opmærksom på at RFC 3986 §3.2.1 advarer mod det i produktions-URL'er, da de ender i browserhistorik, serverlogs og proxy-caches.
Hvorfor bliver mit mellemrum til + i stedet for %20?
Mellemrum i query-komponenten encodes typisk som + efter reglerne i application/x-www-form-urlencoded — det er hvad URLSearchParams producerer. Mellemrum i stien encodes som %20. Begge er gyldige; servere afkoder begge former. Hvis din server er ødelagt og kun håndterer %20, har du et større problem end dette værktøj.
Andre URL- & JSON-værktøjer
At bygge er én retning. Her er hvad der naturligt passer sammen med det: