Wklej polecenie cURL po lewej i kliknij "Konwertuj" — zamienimy je na XMLWklej polecenie cURL

Co robi to narzędzie

Jeśli kiedykolwiek zarejestrowałeś wywołanie HTTP w Chrome DevTools, kliknąłeś "Copy as cURL", a potem musiałeś wysłać to samo żądanie do dostawcy SOAP albo do harnessa testowego zorientowanego na XML, znasz ten schemat — siedzisz i ręcznie przebudowujesz nagłówki i body JSON na elementy XML. To narzędzie przeskakuje ten krok. Wklej polecenie cURL tak jak jest, wraz z kontynuacjami wierszy z backslashem, a dostaniesz jeden dobrze uformowany dokument XML opisujący całe żądanie: metodę, URL, parametry zapytania, nagłówki, uwierzytelnianie i body.

Parser rozumie flagi, których naprawdę używasz na co dzień — -X dla metody, -H dla każdego nagłówka, -d/--data dla body, -u dla basic auth, -b dla ciasteczek i kontynuacje backslash + nowa linia, których curl(1) używa do czytelnych wieloliniowych poleceń. Argumenty w pojedynczych i podwójnych cudzysłowach są obsługiwane, a query string URL-a jest wyciągany do własnego bloku <QueryParams>, żebyś widział każdy parametr w osobnej linii.

Jeśli żądanie ma body JSON, jest osadzone jako zagnieżdżony element <Body> — każde pole z payloadu JSON staje się własnym elementem XML, z zachowaniem kształtu (obiekty się zagnieżdżają, tablice się powtarzają). Body form-urlencoded są rozbijane na pary klucz/wartość. Wszystko, czego cURL nie rozpoznaje — sporadyczne --compressed, -k albo przekazana przez ciebie flaga — trafia do bloku <Options>, żeby nic nie zniknęło po cichu. Wynikiem jest dokument XML, który możesz wrzucić do klienta SOAP, zacommitować jako fixture testowy albo wkleić do dokumentacji.

Jak z tego korzystać

Trzy kroki. Działa tak samo, czy cURL to jedna linia, czy dwadzieścia z kontynuacjami backslash.

1

Wklej cURL (albo wypróbuj przykład)

Wrzuć polecenie cURL do lewego edytora. Zostaw kontynuacje \ tam gdzie są, zachowaj pojedyncze cudzysłowy wokół body, nie usuwaj żadnych flag. Kliknij Wczytaj przykład, jeśli chcesz najpierw zobaczyć realistyczny przykład HTTP.

Chrome, Firefox i Safari mają opcję "Copy as cURL" / "Copy as cURL (bash)" w panelu Network — ten output wkleja się czysto. Postman ma też "Code snippets → cURL", który też działa.

2

Kliknij Konwertuj

Kliknij zielony przycisk Konwertuj. Narzędzie parsuje polecenie, wyciąga metodę, URL, query string, nagłówki, uwierzytelnianie i body, i buduje XML w jednym przebiegu. Podczas pracy zobaczysz krótki wskaźnik ładowania.

3

Skopiuj XML

Prawy panel zapełnia się wciętym, dobrze uformowanym XML-em, który przyjmie dowolne świadome HTTP narzędzie lub zgodny ze standardem parser XML. Skopiuj go wprost do żądania SOAP, fixture'a testowego albo dokumentacji API.

Kiedy to faktycznie się przydaje

Generowanie koperty SOAP z nagrania DevTools

Nagrałeś wywołanie REST w przeglądarce, ale dostawca w dół strumienia wciąż mówi po SOAP. Wklej cURL i użyj wynikowego XML-a jako punktu startowego dla body koperty — metoda, URL i kształt payloadu są już rozłożone.

Fixture'y testowe do narzędzi XML

SoapUI, ReadyAPI i starsze korporacyjne zestawy testowe chcą plików wejściowych XML. Zamień działający cURL na XML raz i zacommituj jako fixture, zamiast ręcznie utrzymywać dwa równoległe formaty.

Integracje z legacy dostawcami korporacyjnymi

API partnerów, które nadal działają na WSDL/SOAP albo bramkach XML, nie przyjmą skryptów cURL. Podanie im żądania XML, które mogą załadować bezpośrednio po swojej stronie, oszczędza rundę typu "co właściwie przyjmuje wasz endpoint".

Dokumentacja API i snippety

Chcesz, żeby README pokazywał to samo żądanie w dwóch formach — cURL dla deweloperów, XML dla zespołu ops przeglądającego ruch. Wygeneruj XML z cURL-a raz i trzymaj oba w synchronizacji.

Częste pytania

Jakie flagi cURL są wspierane?

Te typowe: -X/--request dla metody HTTP, -H/--header dla każdego nagłówka (powtarzaj tyle razy, ile chcesz), -d/--data/--data-raw/--data-binary dla body żądania, -u/--user dla basic auth i -b/--cookie dla ciasteczek. Pełna referencja flag jest na curl.se/docs/manpage.html, jeśli chcesz coś sprawdzić.

Czy obsługuje wieloliniowe kontynuacje z backslashem?

Tak. \ na końcu linii po którym idzie nowa linia jest traktowane jako kontynuacja — dokładnie tak, jak widzą to bash i cURL. Wklej polecenie tak, jak wyszło z DevTools albo historii terminala. Nie musisz wcześniej sklejać go w jedną linię.

Co dzieje się z body JSON żądania?

Body JSON (content-type application/json albo po prostu payload -d '{...}', który parsuje się jako JSON) jest osadzone jako zagnieżdżony XML w elemencie <Body> — każde pole staje się własnym elementem, obiekty się zagnieżdżają, a tablice powtarzają. Gramatyka JSON idzie za RFC 8259, a kształt jest zachowany jeden do jednego w wyjściu XML.

A co z body URL-encoded albo formularzowym?

Body application/x-www-form-urlencoded (np. -d 'user=ava&pwd=x') jest rozbijane na pojedyncze elementy klucz/wartość wewnątrz <Body>. Parametry query string w samym URL-u są wyciągane do osobnego elementu <QueryParams>, żebyś widział każdy parametr wyraźnie. Body multipart (-F) są reprezentowane jako jeden element na część, z nazwą pola i jego wartością.

Czy mogę wkleić output z "Copy as cURL" z Chrome lub Firefoksa?

Tak — to główny use case. "Copy as cURL (bash)" z Chrome, "Copy as cURL" z Firefoksa i "Copy as cURL" z Safari wklejają się wszystkie czysto. Parser ignoruje różnice w stylu cudzysłowów. Output snippetu cURL z Postmana też działa.

A jeśli mój cURL ma flagę, której parser nie rozpoznaje?

Nieznane albo egzotyczne flagi (--compressed, -k, --resolve, własne długie flagi) są zbierane w blok <Options> na końcu XML-a, zamiast być po cichu wyrzucane. Dzięki temu widzisz dokładnie, co było w oryginalnym poleceniu i sam decydujesz, jak to przedstawić po stronie odbiorcy.

Inne narzędzia, które mogą ci się przydać

cURL na XML to jeden element układanki. Te narzędzia dobrze z nim współgrają: