tigtools

Μετατροπέας cURL σε κώδικα

Επικολλήστε μια εντολή curl, για παράδειγμα από τα εργαλεία προγραμματιστή του προγράμματος περιήγησής σας ή από ένα έγγραφο API, και λάβετε ισοδύναμο κώδικα στη γλώσσα σας.

Εκτελείται στον περιηγητή σας Χωρίς εγγραφή

Γλώσσα

Πώς να το χρησιμοποιήσετε

  1. Αντιγράψτε ένα αίτημα ως curl, για παράδειγμα από τα εργαλεία προγραμματιστή του προγράμματος περιήγησής σας (καρτέλα Δίκτυο, δεξί κλικ, Αντιγραφή ως cURL) ή από τεκμηρίωση API.
  2. Επικολλήστε το στο πλαίσιο. Οι συνεχίσεις γραμμής με \ είναι αποδεκτές.
  3. Επιλέξτε JavaScript fetch, Node.js axios, Python requests ή PHP cURL.
  4. Διαβάστε τυχόν σημειώσεις κάτω από τον κώδικα και έπειτα αντιγράψτε ή κατεβάστε το αποτέλεσμα.

Πώς λειτουργεί

Ο μετατροπέας πρώτα χωρίζει την εντολή σε λέξεις όπως κάνει ένα κέλυφος POSIX: κατανοούνται μονά εισαγωγικά, διπλά εισαγωγικά με χαρακτήρες διαφυγής backslash, συμβολοσειρές $'…' και συνεχίσεις γραμμών με backslash. Οι μεταβλητές κελύφους όπως η $TOKEN δεν αναπτύσσονται· παραμένουν ως κείμενο.

Υποστηριζόμενες επιλογές curl: το URL (ή --url), -X/--request, -H/--header, -d/--data, --data-ascii, --data-raw, --data-binary, --data-urlencode, --json, -F/--form και --form-string (πεδία και μεταφορτώσεις @file με ;type=), -u/--user, -G/--get, -I/--head, -A/--user-agent, -e/--referer, -b/--cookie (συμβολοσειρές cookie), -L/--location και --compressed. Οι σύντομες επιλογές μπορούν να συνδυαστούν, όπως στο -sSL, και οι τιμές μπορούν να επισυναφθούν, όπως στο -XPOST.

Οι κανόνες ακολουθούν το curl: πολλές τιμές -d ενώνονται με &· τα δεδομένα κάνουν το αίτημα POST εκτός αν το -X ή το -G ορίζει διαφορετικά· το -G προσαρτά τα δεδομένα στο URL ως συμβολοσειρά ερωτήματος· το --json ορίζει τις κεφαλίδες Content-Type και Accept σε application/json. Όταν το σώμα είναι JSON και το δηλώνει η Content-Type, ο κώδικας στέλνει πραγματικό αντικείμενο (json= στην Python, πίνακας με json_encode στην PHP) αντί για συμβολοσειρά με χαρακτήρες διαφυγής. Για πολυμερείς φόρμες, η κεφαλίδα Content-Type αφήνεται στη βιβλιοθήκη ώστε το όριο να είναι σωστό.

Το -k/--insecure αγνοείται σκόπιμα και μια σημείωση το εξηγεί. Οι επιλογές που αλλάζουν μόνο την έξοδο του curl (-s, -S, -v, -i, -o, --fail και παρόμοιες) αγνοούνται με σχετική σημείωση. Οποιαδήποτε άλλη επιλογή παράγει ένα σαφές σφάλμα που την κατονομάζει, αντί για κώδικα που σιωπηλά κάνει κάτι διαφορετικό. Παραμένει μία διαφορά: το curl ακολουθεί ανακατευθύνσεις μόνο με το -L, ενώ τα fetch, axios και requests τις ακολουθούν από προεπιλογή· ο κώδικας PHP τις ακολουθεί μόνο όταν δόθηκε το -L.

Το εργαλείο γράφει μόνο κώδικα. Δεν στέλνει ποτέ το αίτημα, επομένως τα tokens και οι κωδικοί πρόσβασης στην εντολή δεν χρησιμοποιούνται πουθενά.

Παραδείγματα

Αναπαραγωγή αιτήματος προγράμματος περιήγησης σε Python

Αντιγράψτε μια αποτυχημένη κλήση API από την καρτέλα Δίκτυο του Chrome ως cURL και μετατρέψτε την σε Python requests. Οι κεφαλίδες, τα cookies και το σώμα JSON μεταφέρονται, ώστε να μπορείτε να αναπαράγετε το σφάλμα σε ένα script.

Χρήση τεκμηρίωσης API σε Node.js

Μια αναφορά API δείχνει «curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur». Η έκδοση axios χρησιμοποιεί auth: { username: "key", password: "" } και σώμα κωδικοποιημένο ως φόρμα.

Μεταφόρτωση αρχείου σε PHP

Η εντολή «curl -F 'file=@invoice.pdf;type=application/pdf' -F 'note=March' https://x.io/upload» γίνεται CURLOPT_POSTFIELDS με new CURLFile('invoice.pdf', 'application/pdf') και το πεδίο note.

Συχνές ερωτήσεις

Στέλνει αυτό το εργαλείο το αίτημά μου;

Όχι. Αναλύει μόνο το κείμενο της εντολής και γράφει κώδικα. Δεν πραγματοποιείται κανένα αίτημα, επομένως τυχόν κλειδιά API ή cookies στην εντολή δεν χρησιμοποιούνται ούτε αποθηκεύονται.

Γιατί δεν μετατρέπεται η παράμετρος -k/--insecure;

Η απενεργοποίηση των ελέγχων πιστοποιητικών καθιστά τη σύνδεση ευάλωτη σε υποκλοπές. Ο παραγόμενος κώδικας διατηρεί τους ελέγχους· αν το πιστοποιητικό ενός διακομιστή δεν είναι αξιόπιστο, διορθώστε το πιστοποιητικό ή τον χώρο αποθήκευσης αξιόπιστων πιστοποιητικών.

Γιατί εμφανίζεται το «η επιλογή δεν υποστηρίζεται»;

Ο μετατροπέας μεταφράζει μόνο επιλογές των οποίων τη λειτουργία μπορεί να αναπαράγει πιστά. Οι διακομιστές μεσολάβησης, τα πιστοποιητικά πελάτη, τα cookie jars και παρόμοιες επιλογές απορρίπτονται, ώστε να μην λάβετε κώδικα που συμπεριφέρεται διαφορετικά από το curl.

Λειτουργεί με εντολές του Windows cmd;

Οι εντολές που αντιγράφονται ως «cURL (bash)» λειτουργούν καλύτερα. Το Windows cmd χρησιμοποιεί το ^ για αλλαγή γραμμής και διαφορετική χρήση εισαγωγικών· το ^ στο τέλος της γραμμής γίνεται αποδεκτό, αλλά άλλες διαφυγές του cmd ενδέχεται να μην αναγνωρίζονται.

Απόρρητο

Η εντολή αναλύεται μόνο στο πρόγραμμα περιήγησής σας και δεν αποστέλλεται κανένα αίτημα. Τίποτα δεν μεταφορτώνεται, δεν αποθηκεύεται και δεν περιλαμβάνεται σε στατιστικά.