Cookies Diese Website speichert nur, was sie zum Funktionieren braucht. Derzeit gibt es hier weder Analyse noch Werbung, und nichts davon verfolgt Sie auf andere Websites. Datenschutzerklärung lesen

Auswahl anpassen
+92 312 8299940Kostenloses Angebot
Gratis-Werkzeug, kein Konto nötig

curl-Konverter
Einen Befehl in Code umwandeln

Dieser curl-Konverter macht aus einem Befehl lauffähigen Code. Danach wählen Sie PHP, Python, JavaScript, Go, Ruby, Java, C# oder rohes HTTP. So fügen Sie einmal ein, und danach tippen Sie Header nicht mehr von Hand. Die Arbeit läuft in Ihrem Browser, und wir laden nichts hoch.

  • GratisPreis
  • DreizehnSprachen
  • KeineAnmeldung
  • KeineUploads

curl Converter

Einen curl-Befehl in PHP, Python, JavaScript, Go, Ruby, Java, C# oder rohes HTTP umwandeln

Bereit. Fügen Sie einen curl-Befehl ein oder drücken Sie Beispiel testen.

Ihr Browser erledigt hier die ganze Arbeit, in diesem Tab. Wir laden nichts hoch, speichern nichts und protokollieren nichts.
Die Kurzfassung

Was ein curl-Konverter tut

Ein curl-Befehl schreibt eine Anfrage als Befehlszeile. Dieser curl-Konverter macht aus dieser Zeile Code, den Sie in ein Projekt setzen können. Deshalb behält der Header aus devtools seinen genauen Wert, und Sie tippen ihn nicht mehr.

Aus einem Einfügen kommen vier Dinge zurück. Erstens die Anfrage selbst: Methode, Adresse, Header und Text, zurückgelesen, damit Sie sie prüfen können. Danach der Code in der gewählten Sprache. Dann die Schalter, die curl angewandt hätte, etwa Umleitungsfolge oder ein Zeitlimit. Zuletzt eine Liste von allem, was der Leser selbst entscheiden musste.

Diese letzte Liste ist wichtiger, als sie aussieht. Eine stille Annahme im erzeugten Code ist ein Fehler, den Sie in Produktion finden. Deshalb druckt die Seite jede Entscheidung neben den Code.

Außerdem installieren Sie nichts und senden nichts. So fügen Sie einen Befehl ein, lesen den Code und schließen den Tab, wann es Ihnen passt.

Wie ein curl-Konverter einen Befehl liest

Die Arbeit teilt sich in drei Durchgänge. Zuerst zerlegt die Seite den Befehl in Wörter, wie es eine Shell tut. Dann liest sie jedes Wort als Schalter, Wert oder Adresse. Zuletzt übergibt sie die Anfrage an einen Schreiber für die gewählte Sprache.

Diagramm der drei Durchgänge eines curl-Konverters: links ein curl-Befehl mit drei Headern und einem JSON-Text, in der Mitte drei nummerierte Schritte, die lesen die Wörter zerlegen wie eine Shell, jedes Wort als Schalter, Wert oder Adresse markieren und die Anfrage an einen Schreiber übergeben, und rechts dieselbe Anfrage als PHP-Skript mit bereits gefüllter Adresse, Headern und Text
Zerlegen Sie die Wörter, lesen Sie die Schalter und schreiben Sie die Anfrage.

Das Zerlegen folgt den Shell-Regeln für die Quotierung, denn ein aus devtools eingefügter Befehl stützt sich darauf. Ein Text in einfachen Anführungszeichen ist ein Wort, auch wenn er Leerzeichen enthält. Ein Backslash am Zeilenende verbindet die Zeile mit der nächsten.

Das Lesen der Schalter ist die Stelle, an der ein Konverter seinen Wert beweist. Da curl über zweihundert Optionen listet, lohnt sich nur ein Teil. Die wichtigen ändern das, was ein Server sieht. Das sind die Methode, die Header, der Text, die Cookies, die Umleitungen und das Zeitlimit. Den Rest meldet die Seite, statt ihn zu erraten.

Die Schreiber berühren das Netz nie. So arbeitet die Seite offline. Sie arbeitet auch auf einem Rechner ohne installiertes curl. Ein Befehl kann auf eine Adresse zeigen, die Ihr Browser nicht erreicht, und die Seite wandelt ihn trotzdem um.

Warum die Quotierung das Schwierige ist

Ein Konverter, der nur an Leerzeichen trennt, macht die meisten Befehle falsch. Da ein Header-Wert oft ein Leerzeichen enthält, schneidet ein naives Trennen ihn in zwei. Dann trägt der Code ein halbes Token, und die Anfrage scheitert mit einem 401.

Deshalb verfolgt der Leser den Zustand der Anführungszeichen, während er die Zeile abgeht. Ein doppeltes Anführungszeichen fasst eine Folge von Wörtern zu einer zusammen, und ein einfaches tut dasselbe ohne jede Escapes darin. Nur ein Zeichen, das an den richtigen Stellen öffnet und schließt, zählt.

Der Backslash ist der dritte Fall. Außerhalb von Anführungszeichen maskiert er das nächste Zeichen, und vor einem Zeilenumbruch entfernt er den Umbruch selbst. Darum wird ein über zwanzig Zeilen eingefügter Befehl weiterhin als ein Befehl gelesen.

Welche Sprachen er schreibt

Dreizehn Ziele decken die Arbeit ab, die fast alle hierher bringen. Für PHP gibt es reines cURL und den Guzzle-Client. Für Python gibt es requests. Für JavaScript gibt es fetch, axios und das http-Modul von Node.js. Go, Ruby, Java und C# bekommen je eines. Dann kommen rohes HTTP, eine aufgeräumte curl-Zeile und JSON.

Screenshot des Feldes für erzeugten Code mit gewähltem Ziel Python requests: das Beispiel als Skript, das requests importiert, die Bestelladresse intakt lässt, ein Wörterbuch mit drei Headern samt Bearer-Token baut, die JSON-Nutzlast als eine Zeichenkette übergibt, dann post mit verify und allow_redirects beide true und einem Zeitlimit von zwanzig Sekunden aufruft und Status und Text ausgibt
Dieselbe Anfrage als Python, mit Headern und Text Byte für Byte.

Jeder Schreiber ist eine kleine Funktion über demselben Anfrage-Objekt. Deshalb sieht jedes Ziel identische Bytes. Der Text, den das PHP-Beispiel sendet, ist der Text, den das Go-Beispiel sendet. Nichts kürzt einen Header pro Sprache oder formatiert die Nutzlast still um.

Die Schreiber für PHP und Python zielen auf Code, den Sie so ausführen können. So öffnet der PHP-Teil mit dem Tag, setzt die Optionen und schließt das Handle. Der Python-Teil importiert requests, baut die Header und gibt Status und Text aus.

JavaScript teilt sich absichtlich in drei. Fetch kommt im Browser mit. Axios bringt eigene Bequemlichkeiten, und das http-Modul von Node.js passt zu einem Skript ohne Abhängigkeiten. So verdienen alle drei einen Platz.

Zwei Ziele sind zum Lesen statt zum Ausführen. Rohes HTTP druckt die Nachricht, wie sie über die Leitung ginge. Das ist der schnellste Weg zu sehen, ob ein Header wirklich da ist. JSON druckt dieselbe Anfrage als Daten, bereit für ein Test-Fixture.

Was das Rücklese-Panel zeigt

Bevor Code erscheint, druckt die Seite die Anfrage, die sie verstanden hat. Neun Fakten bekommen je eine Zeile. Dabei decken Sie Methode, Adresse, Anzahl der Header, Größe des Textes und Inhaltstyp. Danach folgen Autorisierung, Cookies, Schalter und Zeitlimit.

Screenshot des Rücklese-Panels unter dem Generator: neun Fakten in einem Raster, die Methode POST lesen, die Bestelladresse mit einer status-Abfrage, drei Header, einen Anfragetext von dreiundfünfzig Bytes, Inhaltstyp application slash json, Autorisierung durch einen Header gesetzt, keine Cookies, den Schalter follow und ein Zeitlimit von zwanzig Sekunden, darunter die Header-Liste mit accept, content type und authorization je in einer Zeile, die letzte mit einem maskierten Bearer-Token
Die Anfrage wird zurückgelesen, bevor der Code geschrieben wird, also taucht ein verlorener Header hier auf.

Die Adressen sind nicht der interessante Teil. Vielmehr ist die Prüfung der Punkt. Ein verlorener Header taucht hier auf, bevor Sie etwas einfügen. Ebenso ein Text, der als Formular statt als JSON ankam. Ein Passwort an der falschen Stelle taucht auch auf.

Die Seite druckt die Header-Liste vollständig darunter, ein Header pro Zeile. Daher vergleichen Sie, was curl senden würde, mit dem, was Ihr Server erwartet. Dann ist der Unterschied sichtbar statt angenommen.

Das Panel nennt Schalter in einfachen Worten. Wer den Code liest, sollte nicht wissen müssen, dass -L Umleitungen folgen bedeutet. Das Panel sagt stattdessen follow, insecure, compressed oder silent.

Von devtools zum Skript in einem Einfügen

Der übliche Weg hinein ist der Browser. Jeder große Browser kann eine Anfrage als curl kopieren. So öffnen Sie das Netzwerk-Panel, klicken mit der rechten Maustaste auf den fehlgeschlagenen Aufruf, kopieren ihn und fügen ihn hier ein. Danach kommt der Befehl mit den echten Headern, dem echten Text und den echten Cookies an.

Screenshot der Entscheidungsnotizen unter einem umgewandelten Befehl: eine Zeile erklärt, dass ein Multipart-Text hier gebaut und als rohe Bytes gesendet wird, und dass ein Dateiteil ein Platzhalter ist, weil die Seite Ihre Festplatte nicht lesen kann
Alles, was der Leser entscheiden musste, steht neben dem Code, nicht darin versteckt.

Außerdem ist das der übliche Weg, einen privaten Aufruf zu debuggen. So reproduzieren Sie eine fehlgeschlagene Anfrage als Code. Dann fügen Sie ein print hinzu und sehen, was der Server sagt, statt aus einem Netzwerk-Panel zu raten.

Zeilenumbrüche spielen keine Rolle. Daher liest die Seite einen über zwanzig Zeilen kopierten Befehl genauso wie eine Zeile. Auch die Einrückung spielt dabei keine Rolle.

Schritt für Schritt

So nutzen Sie den curl-Konverter

Vier Schritte, und keiner braucht ein Konto.

  • 1

    Kopieren Sie den Befehl

    So öffnen Sie devtools, klicken mit der rechten Maustaste auf die Anfrage und wählen Als curl kopieren. Außerdem markieren Sie aus einem Dokument oder einer README den ganzen Befehl samt Backslashes am Zeilenende.

  • 2

    Fügen Sie ihn im linken Feld ein

    Dann fügen Sie alles ein. Das Feld nimmt den Befehl genau so, wie Sie ihn kopiert haben. So müssen Sie die Zeilen nicht verbinden oder die Einrückung vorher ordnen.

  • 3

    Prüfen Sie das Rücklese-Panel

    Als Nächstes vergleichen Sie die Fakten mit dem, was Sie erwarten. Dabei ist ein fehlender Header hier leichter zu sehen als im Code darunter. Ein Text, der als Formular ankam, ebenso.

  • 4

    Wählen Sie eine Sprache und nehmen Sie den Code

    Zuletzt wählen Sie ein Ziel und kopieren oder laden es. Außerdem lesen Sie auch die Entscheidungsnotizen: die Seite listet absichtlich alles, was der Leser erraten hat.

Warum diese Seite

Warum diesen curl-Konverter nutzen

Vier Gründe, und jeder betrifft die Anfrage statt den Code.

  • Ein Einfügen, dreizehn Ziele

    So vergleichen Sie zwei Sprachen nebeneinander und klären den Streit, welcher Header fehlt. Da dieselbe Anfrage jeden Schreiber speist, stimmen die Beispiele von Natur aus überein.

  • Nichts verlässt den Browser

    Daher bleiben ein Bearer-Token oder ein Session-Cookie auf Ihrem Rechner. Dabei gibt es keinen Upload, kein Log und kein Konto. Das zählt, wenn ein Befehl ein echtes Geheimnis trägt.

  • Die Seite druckt jede Annahme

    Weil eine stille Annahme im erzeugten Code ein Fehler ist, den Sie später finden, listet die Seite jede Entscheidung neben dem Code, mit dem Schalter, aus dem sie kam.

  • Jedes PHP-Beispiel besteht zuerst php -l

    Danach schreibt der Build jedes PHP-Beispiel in eine Datei. Dabei führt er jedes durch php -l, bevor die Seite live geht. So werden Quotierungsfehler hier gefangen statt in Ihrem Editor.

Regeln, denen er folgt

Die Regeln, die dieser Konverter einhält

Sechs Regeln, und sie machen die Ausgabe vertrauenswürdig statt bloß plausibel.

  • Die Methode kommt aus dem Befehl Ein ausdrückliches -X gewinnt. Sonst gelten die curl-Regeln. Ein Text macht daraus ein POST, ein HEAD-Schalter ein HEAD, und der Rest bleibt GET.
  • Ein erklärter Inhaltstyp schlägt einen Standard Devtools sendet den Header immer. So trägt der Code den Wert, den Sie kopiert haben, auch wenn curl etwas anderes erraten hätte.
  • Wiederholte Textteile werden mit einem Ampersand verbunden So werden drei -d-Schalter ein Formulartext, genau wie curl sie sendet. Die Seite sagt, dass sie sie verbunden hat, damit Sie es wissen.
  • Basic-Auth wird gebaut, nicht kopiert Dann werden Benutzername und Passwort aus -u ein Authorization-Header. So sendet der Code dieselben Bytes, ohne dass curl es tun muss.
  • Nichts wird irgendwohin gesendet Das Lesen und das Schreiben laufen beide in Ihrem Browser. So wandelt ein Befehl auf einen internen Host trotzdem gut um, und es wird nie eine Anfrage gemacht.
  • Eine Ablehnung ist ein Ergebnis So meldet die Seite einen Schalter ohne Entsprechung in der Zielsprache. Sie lässt diesen Schalter nie still weg. Dann entscheiden Sie, was zu tun ist, mit genanntem Schalter.
Vorsicht hier

Fehler, die Sie bei erzeugten Anfragen vermeiden sollten

Sechs Dinge, die Leute falsch machen, und wie Sie jedem ausweichen.

  • Einen Befehl mit kaputten Anführungszeichen einfügen

    Zudem passen Sie auf, wenn eine Shell oder ein Chatfenster die äußeren Anführungszeichen entfernt hat. Weil ein offenes Zeichen den Rest der Zeile verschluckt, prüfen Sie das schließende Zeichen, bevor Sie den Konverter beschuldigen.

  • Ein echtes Token im Beispiel lassen

    Ersetzen Sie daher ein echtes Bearer-Token durch einen Platzhalter, bevor Sie die Datei einchecken. Der Konverter behält den Wert, den Sie ihm gaben, also ist das Aufräumen Ihre Sache.

  • Einem Header vertrauen, der aus einer Datei gelesen wird

    Ein -H @file-Schalter bedeutet, dass der Header auf der Festplatte liegt. Weil diese Seite Ihre Festplatte nicht öffnen kann, fehlt der Header im Code, und die Notiz sagt es.

  • Vergessen, dass Umleitungen standardmäßig abweichen

    So folgt curl einer Umleitung nur mit -L. Mehrere HTTP-Clients folgen jedoch standardmäßig, und dieser Unterschied beißt. Dabei nennt das Panel die Wahl, die der Befehl traf.

  • Einen Multipart-Text einfügen und eine echte Datei erwarten

    Diese Seite kann die von Ihnen genannte Datei nicht lesen. So trägt der Text einen Platzhalter, und Sie setzen später den echten Pfad ein. Zudem kann Ihre Client-Bibliothek das Multipart-Formular selbst bauen.

  • Annehmen, dass jede Sprache gleich quotiert

    Ein Text mit einem Apostroph bricht eine unbedachte PHP-Zeichenkette und eine unbedachte Python-Zeichenkette an verschiedenen Stellen. Deshalb maskiert jeder Schreiber für seine eigene Sprache, und der Build prüft die PHP-Teile mit php -l.

Fragen

Fragen zum curl-Konverter

Ist dieser curl-Konverter gratis?

Ja. Es gibt kein Konto, kein Limit und keinen bezahlten Tarif. So wandeln Sie so viele Befehle um, wie Sie möchten.

Sendet er meinen Befehl irgendwohin?

Nein. Da das Lesen und das Schreiben in Ihrem Browser laufen, verlässt der Befehl nie Ihren Rechner. Deshalb bleibt eine Anfrage mit einem echten Token privat.

Führt er die Anfrage aus?

Nein. Er liest nur den Befehl und schreibt Code. So geht nichts an die Adresse im Befehl, und genau das macht das Einfügen eines internen Hosts sicher.

Welche Sprachen kann er schreiben?

Dreizehn Ziele. Für PHP gibt es zwei: reines cURL und den Guzzle-Client. Python bekommt requests, und JavaScript bekommt fetch, axios und das http-Modul von Node.js. Go, Ruby, Java und C# bekommen je eines. Die letzten drei sind rohes HTTP, eine saubere curl-Zeile und JSON.

Kann er einen Befehl lesen, der aus devtools von Chrome oder Firefox kopiert wurde?

Ja. Das ist der übliche Weg hinein. Danach kommt der kopierte Befehl mit seinen Anführungszeichen und Backslashes an, und der Leser verarbeitet beides.

Und ein Befehl, der auf einer sehr langen Zeile steht?

Er liest ihn gleich. Der Trenner arbeitet über Leerzeichen und Anführungszeichen, nicht über Zeilen. So ergeben eine lange Zeile und zwanzig kurze dieselbe Anfrage.

Versteht er --data-raw, --data-binary und --data-urlencode?

Ja, und jedes behält seine Bedeutung. So bleibt ein urlencodierter Teil kodiert, und ein binärer Teil geht so durch, wie er ist.

Was passiert mit -F Datei-Uploads?

Die Seite baut den Multipart-Text selbst und sendet ihn als rohe Bytes. Da sie Ihre Festplatte nicht lesen kann, trägt ein Dateiteil einen Platzhalter, und die Notiz nennt ihn.

Folgt er Umleitungen wie curl?

Er richtet sich nach dem Befehl. So folgt curl einer Umleitung nur mit -L, und der Code folgt nur, wenn der Befehl es tat.

Wie geht er mit -u benutzer:passwort um?

Er baut den Authorization-Header selbst aus den beiden Teilen. Folglich sendet der erzeugte Code denselben Basic-Header, ohne eine curl-Option zu brauchen.

Warum taucht ein Schalter in den Entscheidungsnotizen auf?

Weil der Leser für Sie wählen oder etwas weglassen musste. Dann nennt die Notiz den Schalter, damit Sie ihn von Hand prüfen können.

Kann ich einen curl-Befehl ohne Adresse umwandeln?

Teilweise. Dann liest und meldet die Seite die Schalter, aber es gibt keine Anfrage zu schreiben. Sie fragt stattdessen nach einer Adresse.

Kann ich das erzeugte PHP so ausführen?

Ja. Es öffnet mit dem Tag, setzt die Optionen, führt aus und schließt das Handle. Außerdem läuft es durch php -l, bevor diese Seite live geht, also hält die Quotierung.

Und das erzeugte Python?

Es importiert requests, baut die Header, sendet den Aufruf mit der richtigen Methode und gibt Status und Text aus. So fügen Sie es in eine Datei ein und führen es aus.

Warum braucht fetch eine Umleitungseinstellung?

Weil der Browser-Standard von curl abweicht. So nennt der Code follow oder manual, und beide passen zu dem, was der Befehl verlangt hat.

Behält er die Reihenfolge der Header?

Ja. Der Code schreibt die Header in der Reihenfolge, in der sie im Befehl standen. So ist ein Diff gegen die Originalzeile lesbar.

Kann er eine Cookie-Datei lesen?

Die Seite meldet den Pfad, aber sie öffnet die Datei nicht. Da ein Browser Ihre Festplatte nicht still lesen kann, erfindet er daraus keinen Cookie-Header.

Was macht das Ziel sauberes curl?

Es schreibt dieselbe Anfrage als aufgeräumtere curl-Zeile zurück, mit einem Schalter pro Zeile. So können Sie sie in ein Skript oder ein Ticket einfügen und jeden Teil sehen.

Wofür ist das JSON-Ziel da?

Es gibt die Anfrage als Daten aus. Dann legen Sie sie in ein Test-Fixture und vergleichen, was Ihr Code sendet, mit dem, was curl gesendet hat.

Verarbeitet er --json?

Ja. Dieser Schalter setzt sowohl den Inhaltstyp als auch den accept-Header, und das Panel zeigt beide. Wenn sich ein normaler Textteil dazumischt, sagt die Seite, dass die Kombination mehrdeutig ist.

Wie viele Header nimmt er auf?

Hunderte. Der Leser ist ein einziger Durchlauf über die Wörter. So wandelt ein Befehl mit dreihundert Headern im selben Augenblick um wie einer mit drei.

Funktioniert er auf einem Telefon?

Ja. Die Felder stapeln sich, und das Beispiel bleibt bei schmaler Breite lesbar. So können Sie einen Befehl umwandeln, wenn Sie nicht am Schreibtisch sind.

Darf ich die Ausgabe in einem kommerziellen Projekt nutzen?

Ja. Auf den erzeugten Code gibt es keine Lizenz, denn erzeugter Code gehört Ihnen, und niemand verlangt eine Namensnennung.

Warum trägt der Code manchmal einen Kommentar?

Weil die Zielsprache einen Ort hat, sich zu erklären. So legt der Code einen Schalter mit überraschender Bedeutung dort aus, wo der Leser der Datei ihn findet.

Was, wenn der Konverter einen Schalter liest, den ich nie gesehen habe?

Die Seite meldet ihn als unbekannten Schalter und überspringt ihn. Vor allem erfindet sie nichts an seiner Stelle, und das hält den Rest der Anfrage ehrlich.

Gibt es eine API?

Nein, und sie ist nicht nötig, weil die Arbeit ohnehin in Ihrem Browser läuft. Deshalb erreicht auch nichts ein Server-Log.

Weiter geht es

Werkzeuge, die zu diesem passen

Vier Seiten, zu denen dieselbe Arbeit danach meist führt.

  • JSON-Formatierer

    Formatieren Sie danach den Anfragetext, bevor Sie ihn in ein Fixture einfügen. Da eine einzeilige Nutzlast einen schlechten Schlüssel verbirgt, macht dies ihn sichtbar.

    Tool öffnen →
  • URL-Encoder und -Decoder

    Prüfen Sie außerdem einen Abfragewert, der durch --data-urlencode kam. Dann sehen Sie, ob die Prozentzeichen stimmen, bevor ein Server sie ablehnt.

    Tool öffnen →
  • HTML-Entity-Encoder und -Decoder

    Für einen Anfragetext mit Markup zeigt dies, was der Server wirklich liest. So ist ein maskiertes Ampersand keine Annahme mehr.

    Tool öffnen →
  • JavaScript-Minifizierer

    Sobald Sie das fetch-Beispiel in ein Projekt eingefügt haben, verkleinert dies es für den Browser-Build. Dann bleibt die ausgelieferte Datei klein.

    Tool öffnen →

Jetzt einen curl-Befehl umwandeln

Fügen Sie den Befehl ein, prüfen Sie die Anfrage, die zurückkommt, und nehmen Sie den Code in der Sprache mit, die Sie brauchen. Nichts verlässt Ihren Browser, also bleibt ein Token Ihr eigenes. Die ganze Arbeit passt in ein Einfügen.