Klistra in ett cURL-kommando till vänster och klicka "Konvertera" — vi gör om det till XMLKlistra in ett cURL-kommando

Vad verktyget gör

Om du någonsin har spelat in ett HTTP-anrop i Chrome DevTools, klickat "Copy as cURL" och sedan behövt skicka samma request till en SOAP-leverantör eller en XML-inriktad testharness, känner du igen det — du sitter där och bygger om headers och JSON-body till XML-element för hand. Det här verktyget hoppar över den biten. Klistra in cURL-kommandot som det är, backslash-radfortsättningar och allt, så får du ett enda välformat XML-dokument som beskriver hela requesten: method, URL, query-parametrar, headers, auth och body.

Parsern förstår de flaggor du faktiskt använder till vardags — -X för method, -H för varje header, -d/--data för body, -u för basic auth, -b för cookies och backslash-newline-fortsättningarna som curl(1) använder för läsbara flerradskommandon. Både enkla och dubbla citat-argument hanteras, och URL-query strings bryts ut i sitt eget <QueryParams>-block så att du ser varje parameter på en egen rad.

Om requesten har en JSON-body bäddas den in som ett nästlat <Body>-element — varje fält i JSON-payloaden blir sitt eget XML-element, och formen bevaras (objekt nästlas, arrayer upprepas). Form-urlencoded bodies bryts ut i nyckel/värde-par. Allt som cURL inte känner igen — en och annan --compressed, -k eller en flagga du skickade med — samlas i ett <Options>-block så att inget tappas bort i tysthet. Resultatet är ett XML-dokument som du kan mata in i en SOAP-klient, commita som test-fixture eller klistra in i dokumentation.

Så använder du det

Tre steg. Funkar likadant oavsett om cURL:en är en rad eller tjugo rader med backslash-fortsättningar.

1

Klistra in cURL:en (eller prova exemplet)

Släng in ditt cURL-kommando i vänstra editorn. Låt \-radfortsättningarna vara kvar, behåll enkelcitationstecknen runt body:n, plocka inte bort några flaggor. Klicka Ladda exempel om du först vill se ett realistiskt HTTP-exempel.

Chrome, Firefox och Safari har alla en "Copy as cURL" / "Copy as cURL (bash)"-option i sin Network-panel — den outputen klistras in snyggt. Postmans "Code snippets → cURL" fungerar också.

2

Tryck Konvertera

Klicka på den gröna Konvertera-knappen. Verktyget parsar kommandot, drar ut method, URL, query string, headers, auth och body, och bygger XML:en i ett svep. Du ser en kort laddningsindikator medan det körs.

3

Kopiera XML:en

Högra panelen fylls med indenterad, välformad XML som alla HTTP-medvetna verktyg eller standardkompatibla XML-parsers kommer att acceptera. Kopiera rakt in i en SOAP-request, en test-fixture eller dina API-docs.

När det här faktiskt kommer till pass

SOAP-envelope från en DevTools-inspelning

Du spelade in ett REST-anrop i webbläsaren, men leverantören nedströms pratar fortfarande SOAP. Klistra in cURL:en och använd den resulterande XML:en som utgångspunkt för envelope-body:n — method, URL och payload-form finns redan på plats.

Test-fixtures för XML-inriktade verktyg

SoapUI, ReadyAPI och äldre enterprise-testkits vill ha XML-input. Konvertera en fungerande cURL till XML en gång och commita den som fixture istället för att underhålla två parallella format för hand.

Integrationer med legacy enterprise-leverantörer

Partner-API:er som fortfarande kör på WSDL/SOAP eller XML-gateways accepterar inte cURL-skript. Att ge dem en XML-request de kan ladda direkt på sin sida sparar en runda av "vad förväntar sig egentligen er endpoint".

API-dokumentation och snippets

Du vill att din README ska visa samma request i två former — cURL för utvecklare, XML för ops-teamet som granskar trafik. Generera XML:en från cURL:en en gång och håll dem synkade.

Vanliga frågor

Vilka cURL-flaggor stöds?

De vanliga: -X/--request för HTTP-method, -H/--header för varje header (upprepa så många gånger du vill), -d/--data/--data-raw/--data-binary för request-body:n, -u/--user för basic auth och -b/--cookie för cookies. Den fullständiga flagg-referensen ligger på curl.se/docs/manpage.html om du vill slå upp något.

Hanterar det flerrads backslash-fortsättningar?

Ja. \ i slutet av en rad följd av en newline behandlas som radfortsättning — precis så som bash och cURL ser det. Klistra in kommandot som det kom ut från DevTools eller din terminal-history. Du behöver inte slå ihop det till en rad först.

Vad händer med en JSON-request-body?

En JSON-body (content-type application/json eller bara en -d '{...}'-payload som parsar som JSON) bäddas in som nästlat XML inuti ett <Body>-element — varje fält blir sitt eget element, objekt nästlas och arrayer upprepas. JSON-grammatiken följer RFC 8259, och formen bevaras ett-till-ett i XML-outputen.

Hur är det med URL-encoded eller form-bodies?

En application/x-www-form-urlencoded-body (t.ex. -d 'user=ava&pwd=x') bryts ut i enskilda nyckel/värde-element inuti <Body>. Query-string-parametrar på själva URL:en plockas ut till ett separat <QueryParams>-element så att du ser varje parameter tydligt. Multipart-bodies (-F) representeras som ett element per del med fältnamn och värde.

Kan jag klistra in output från "Copy as cURL" i Chrome eller Firefox?

Ja — det är själva huvud-use-caset. Chromes "Copy as cURL (bash)", Firefox "Copy as cURL" och Safaris "Copy as cURL" klistras alla in snyggt. Parsern ignorerar skillnader i citatteckens-stil. Postmans cURL-kodsnippet-output funkar också.

Tänk om min cURL har en flagga som parsern inte känner igen?

Okända eller ovanliga flaggor (--compressed, -k, --resolve, egna långa flaggor) samlas i ett <Options>-block i slutet av XML:en istället för att falla mellan stolarna. På så sätt ser du exakt vad som fanns i originalkommandot och bestämmer själv hur det ska representeras på mottagarsidan.

Andra verktyg du kan behöva

cURL till XML är en pusselbit. Dessa verktyg passar bra ihop med det: