cURL til XML-konverter
Indsæt en cURL-kommando. Få ren XML tilbage.
Hvad værktøjet gør
Hvis du nogensinde har optaget et HTTP-kald i Chrome DevTools, klikket "Copy as cURL" og så skullet sende den samme request til en SOAP-leverandør eller et XML-first testharness, kender du øvelsen — du sidder og bygger headers og JSON-body om til XML-elementer i hånden. Det her værktøj springer over det. Indsæt cURL-kommandoen som den er, backslash-linjefortsættelser og det hele, og du får ét well-formed XML-dokument, der beskriver hele requesten: method, URL, query-parametre, headers, auth og body.
Parseren forstår de flag, du reelt bruger til daglig — -X for method, -H for hver header, -d/--data for body, -u for basic auth, -b for cookies og de backslash-newline-fortsættelser, som curl(1) bruger til læsbare flerlinjekommandoer. Argumenter i både enkelt- og dobbelt-citat håndteres, og URL-query strings hives ud i deres egen <QueryParams>-blok, så du ser hver parameter på sin egen linje.
Har requesten en JSON-body, bliver den indlejret som et nestet <Body>-element — hvert felt i JSON-payloaden bliver sit eget XML-element, og formen bevares (objekter nestes, arrays gentages). Form-urlencoded bodies brydes op i nøgle/værdi-par. Alt, som cURL ikke genkender — et enkelt --compressed, -k eller et flag, du sendte med — samles i en <Options>-blok, så intet stille og roligt forsvinder. Resultatet er et XML-dokument, du kan fodre en SOAP-klient med, committe som test-fixture eller klistre ind i dokumentation.
Sådan bruger du det
Tre trin. Virker ens, uanset om cURL:en er én linje eller tyve linjer med backslash-fortsættelser.
Indsæt cURL:en (eller prøv eksemplet)
Smid din cURL-kommando ind i venstre editor. Lad \-linjefortsættelserne stå, behold de enkelte citationstegn omkring body:en, og fjern ikke nogen flag. Klik Hent eksempel, hvis du først vil se et realistisk HTTP-eksempel.
Chrome, Firefox og Safari har alle en "Copy as cURL" / "Copy as cURL (bash)"-option i deres Network-panel — det output indsættes pænt. Postmans "Code snippets → cURL" virker også.
Klik Konvertér
Tryk på den grønne Konvertér-knap. Værktøjet parser kommandoen, trækker method, URL, query string, headers, auth og body ud, og bygger XML:en i én omgang. Du ser en kort indlæsningsindikator, mens det kører.
Kopiér XML:en
Højre panel fyldes med indrykket, well-formed XML, som ethvert HTTP-bevidst værktøj eller standardkompatibel XML-parser vil acceptere. Kopiér direkte ind i en SOAP-request, en test-fixture eller dine API-docs.
Hvornår det faktisk kommer til sin ret
SOAP-envelope fra en DevTools-optagelse
Du optog et REST-kald i browseren, men leverandøren nedstrøms taler stadig SOAP. Indsæt cURL:en og brug den resulterende XML som startpunkt for envelope-body — method, URL og payload-form er allerede lagt på plads.
Test-fixtures til XML-first-værktøjer
SoapUI, ReadyAPI og ældre enterprise-testkits vil have XML-input-filer. Konvertér en fungerende cURL til XML én gang og commit den som fixture i stedet for manuelt at vedligeholde to parallelle formater.
Integrationer med legacy enterprise-leverandører
Partner-API'er, der stadig kører på WSDL/SOAP eller XML-gateways, tager ikke imod cURL-scripts. At række dem en XML-request, de kan loade direkte på deres side, sparer en runde af "hvad forventer jeres endpoint egentlig".
API-dokumentation og snippets
Du vil have, at din README viser samme request i to former — cURL til udviklere, XML til ops-teamet, der gennemgår trafik. Generér XML:en fra cURL:en én gang, og hold dem synkroniseret.
Almindelige spørgsmål
Hvilke cURL-flag understøttes?
De gængse: -X/--request til HTTP-method, -H/--header til hver header (gentag så mange gange, du vil), -d/--data/--data-raw/--data-binary til request-body, -u/--user til basic auth og -b/--cookie til cookies. Den fulde flag-reference ligger på curl.se/docs/manpage.html, hvis du vil slå noget op.
Håndterer det flerlinje backslash-fortsættelser?
Ja. En \ i slutningen af en linje efterfulgt af en newline behandles som linjefortsættelse — præcis som bash og cURL ser det. Indsæt kommandoen, som den kom ud af DevTools eller din terminal-history. Du behøver ikke slå den sammen til én linje først.
Hvad sker der med en JSON-request-body?
En JSON-body (content-type application/json eller bare en -d '{...}'-payload, der parser som JSON) indlejres som nestet XML inde i et <Body>-element — hvert felt bliver sit eget element, objekter nestes og arrays gentages. JSON-grammatikken følger RFC 8259, og formen bevares en-til-en i XML-outputtet.
Hvad med URL-encoded eller form-bodies?
En application/x-www-form-urlencoded-body (fx -d 'user=ava&pwd=x') brydes op i individuelle nøgle/værdi-elementer inde i <Body>. Query-string-parametre på selve URL:en trækkes ud i et separat <QueryParams>-element, så du tydeligt ser hver parameter. Multipart-bodies (-F) repræsenteres som ét element pr. del med feltnavnet og dets værdi.
Kan jeg indsætte output fra "Copy as cURL" i Chrome eller Firefox?
Ja — det er selve hoved-use-caset. Chromes "Copy as cURL (bash)", Firefox' "Copy as cURL" og Safaris "Copy as cURL" indsættes alle pænt. Parseren ignorerer forskelle i citationstegns-stil. Postmans cURL-kodesnippet-output virker også.
Hvad hvis min cURL har et flag, parseren ikke kender?
Ukendte eller eksotiske flag (--compressed, -k, --resolve, egne long flags) samles i en <Options>-blok i slutningen af XML:en i stedet for at blive tabt på gulvet. På den måde ser du præcis, hvad der var i den oprindelige kommando, og beslutter selv, hvordan det skal repræsenteres på modtagersiden.
Andre værktøjer, du kan få brug for
cURL til XML er én brik i puslespillet. Disse værktøjer passer godt sammen med det: