URL-bygger
Sett sammen en URL fra en JSON-konfig — encoding håndtert, gjentatte nøkler støttet
Konfig (JSON)
URL
Hva er URL-byggeren?
Du gir den et JSON-objekt som beskriver delene av en URL — protokoll, vert, sti, query-parametre, hash — og verktøyet gir deg den sammensatte URL-en tilbake, korrekt percent-encoded. Under panseret bruker den nettleserens innebygde URL-API, så utdata matcher nøyaktig hva en nettleser ville produsert hvis du selv bygget URL-en i JavaScript.
Grunnen til at den finnes: å bygge en URL for hånd er der bugs gjemmer seg. Du glemmer å encode et mellomrom i et kundenavn, du dobbel-encoder en skråstrek som allerede var encoded, du blander ? og &, du mister en verdi fordi du brukte + i stedet for %20. WHATWG URL-spesifikasjonen definerer nøyaktig ett riktig svar for hvert input, og det er det du får her. Gjentatte query-nøkler (f.eks. tag=red&tag=blue) støttes ved å sende et array — samme form URLSearchParams godtar.
Den kjører helt i nettleseren din. JSON-konfigen og den sammensatte URL-en forlater aldri maskinen din. Encoding-reglene kommer rett fra RFC 3986 og WHATWG-foredlingene oppå. Kombiner med URL-parseren når du vil sende en URL frem og tilbake gjennom et strukturert skjema.
Slik bruker du URL-byggeren
Tre steg. Hvert steg tilsvarer en knapp på siden.
Lim inn en JSON-konfig
Lim inn et JSON-objekt til venstre som beskriver URL-delene. protocol og host er obligatorisk; resten er valgfritt. Klikk på Eksempel for å laste inn et realistisk tilfelle 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 felt: port, username, password, hash. Inni searchParams er en streng én verdi; et array er gjentatte nøkler.
Les den sammensatte URL-en
Høyre panel viser den sammensatte URL-strengen. Mellomrom blir + i query-strengen, hakeparenteser blir %5B/%5D, stien normaliseres — samme encoding som URL-standarden definerer. Oppdaterer mens du skriver.
Kopier eller last ned
Klikk på Kopier for å sende URL-en til utklippstavlen, eller Last ned for å lagre den som en tekstfil. Bruk Tøm i inndatapanelet for å starte på nytt.
Når du faktisk ville brukt dette
Lage test-fixtures til en HTTP-klient
Du skriver en test som treffer /v1/orders med åtte query-parametre, der to inneholder mellomrom og én er gjentatt. Å skrive den encodede URL-en for hånd inn i testen er en feilfelle. Bygg den fra et JSON-objekt du kan kopiere fra en ekte request-logg, lim inn URL-en i assertionen. Ferdig.
Bygge OAuth-authorize-URL-er
OAuth-authorize-URL-er proper inn client_id, redirect_uri, scope, state, response_type og code_challenge i query-strengen. RFC 6749 krever akkurat de parameternavnene og en redirect_uri som allerede er encoded én gang før hele URL-en encodes igjen. Byggeren håndterer det transparent — du gir den råverdiene, og den gjør det riktige.
Generere analytics- eller share-URL-er i et skript
Når du genererer en kampanje-URL med UTM-parametre, kommer verdiene ofte fra et regneark der utm_campaign inneholder mellomrom, ampersander og en sjelden emoji. Å la URL-konstruktøren ta seg av encoding er tryggere enn en streng-mal. Utdata er identisk med det Nodes URL-modul ville produsert.
Reprodusere en bug fra en supportsak
En kunde rapporterer at et søk med q=résumé writer gir 500 på API-et. Du vil reprodusere nøyaktig samme request. Bygg URL-en fra JSON, kjør så curl mot den. Aksenten på e-en og mellomrommet blir begge encoded slik nettleseren ville sendt dem — uten gjetting.
Vanlige spørsmål
Hva er forskjellen på URL-byggeren og å lime strenger sammen selv?
Encoding. https://api.example.com/orders?customer=Ava Chen er ikke en gyldig URL — mellomrommet ødelegger den. Byggeren bruker internt URLSearchParams, som encoder mellomrommet som + i query og som %20 i stien. Hjemmelaget streng-sammenslåing bommer på en av dem før eller siden.
Hvordan sender jeg en query-parameter to ganger (f.eks. ?tag=red&tag=blue)?
Bruk et array som verdi: "tag": ["red", "blue"]. Byggeren skriver ut tag=red&tag=blue i rekkefølgen du oppga. Matcher URLSearchParams-spec'en.
Må jeg ha med kolonet etter protokollen (https:), eller bare https?
Begge funker. Byggeren normaliserer både "protocol": "https" og "protocol": "https:" til https:. Samme for http, ftp, mailto og egendefinerte scheme-er.
Kan jeg inkludere credentials (brukernavn/passord) i URL-en?
Ja — sett "username" og "password" i konfigen. De dukker opp foran verten som user:pass@host. Vær oppmerksom på at RFC 3986 §3.2.1 advarer mot dette i produksjons-URL-er fordi de havner i nettleserhistorikk, serverlogger og proxy-cacher.
Hvorfor blir mellomrommet mitt + i stedet for %20?
Mellomrom i query-komponenten blir typisk encoded som + etter reglene i application/x-www-form-urlencoded — det er det URLSearchParams produserer. Mellomrom i stien encodes som %20. Begge er gyldige; servere dekoder begge formene. Hvis serveren din er ødelagt og bare håndterer %20, har du et større problem enn dette verktøyet.
Andre URL- & JSON-verktøy
Å bygge er én retning. Her er hva som passer naturlig sammen: