Το εργαλείο γραμμής εντολών curl είναι ένας τέλειος βοηθός όταν εργάζεστε με κώδικα HTTP. Δοκιμάστε τα αιτήματα, εξερευνήστε μορφές δεδομένων και πολλά άλλα!
Το πρωτόκολλο μεταφοράς υπερκειμένου (HTTP) είναι η ραχοκοκαλιά της επικοινωνίας μέσω του Διαδικτύου, που επιτρέπει τη μεταφορά δεδομένων μεταξύ διακομιστών και πελατών. Ωστόσο, η αλληλεπίδραση με τα τελικά σημεία HTTP μπορεί να είναι δύσκολη, ειδικά για αρχάριους.
Ευτυχώς, το curl, ένα εργαλείο γραμμής εντολών, παρέχει έναν εύκολο και αποτελεσματικό τρόπο αποστολής και λήψης αιτημάτων HTTP. Εδώ θα μάθετε πώς να χρησιμοποιείτε το curl για να κάνετε βασικά αιτήματα POST, GET, DELETE και PUT HTTP.
Τοποθέτηση μπούκλας
Από προεπιλογή, το curl εγκαθίσταται σε μεγάλα λειτουργικά συστήματα, συμπεριλαμβανομένων των macOS, Linux και Unix.
Μπορείτε να επιβεβαιώσετε ότι έχετε εγκαταστήσει το curl εκτελώντας την παρακάτω εντολή:
μπούκλα
Η παραπάνω εντολή θα πρέπει να εκτυπώσει "δοκιμάστε "curl --help" ή "curl --manual" για περισσότερες πληροφορίες" στο τερματικό σας.
Εάν το curl δεν είναι εγκατεστημένο στο λειτουργικό σας σύστημα, μπορείτε να το κατεβάσετε και να το εγκαταστήσετε από τη σελίδα λήψεων curl.
Υποβολή αιτήματος HTTP GET
Ένα αίτημα HTTP GET είναι μια μέθοδος για να ζητήσετε δεδομένα από έναν διακομιστή ιστού. Μπορείτε να χρησιμοποιήσετε αυτά τα αιτήματα για να ανακτήσετε έναν συγκεκριμένο πόρο, όπως μια ιστοσελίδα, μια εικόνα ή ένα βίντεο.
Μπορείτε να κάνετε ένα αίτημα GET με curl στην παρακάτω μορφή:
μπούκλα -X GET
Αντικαθιστώ με τη διεύθυνση URL του πόρου που θέλετε να ανακτήσετε.
Για παράδειγμα:
μπούκλα -X GET https://example.com/todos/1
Η εκτέλεση της παραπάνω εντολής δημιουργεί ένα αίτημα HTTP GET στη διεύθυνση URL https://example.com/todos/1. ο -Χ ΠΑΡΕ Η επιλογή καθορίζει ότι η μέθοδος HTTP είναι GET. Όταν εκτελείται η εντολή, το curl στέλνει ένα αίτημα GET στον διακομιστή που καθορίζεται στη διεύθυνση URL και περιμένει την απάντηση του διακομιστή.
Εάν ο διακομιστής απαντήσει με έναν επιτυχημένο κωδικό κατάστασης, μπούκλα εμφανίζει το σώμα απόκρισης στο τερματικό, το οποίο, σε αυτήν την περίπτωση, θα είναι τα δεδομένα JSON σχετικά με ένα αντικείμενο υποχρεώσεων με αναγνωριστικό 1.
Εναλλακτικά, μπορείτε να υποβάλετε αίτημα GET χωρίς να καθορίσετε το -Χ επισημάνετε επειδή, από προεπιλογή, το curl κάνει ένα αίτημα GET όταν δεν καθορίζετε μια μέθοδο αιτήματος με το -Χ σημαία.
Για παράδειγμα:
μπούκλα https://example.com/todos/1
Η εκτέλεση της παραπάνω εντολής θα επιστρέψει την ίδια απάντηση με την προηγούμενη εντολή με το "-Χ ΠΑΡΕ"σημαία.
Υποβολή αιτήματος HTTP POST
Ένα αίτημα HTTP POST είναι μια μέθοδος αποθήκευσης δεδομένων σε διακομιστή web. Σε αντίθεση με ένα αίτημα GET, το οποίο στέλνει δεδομένα ως μέρος του URL, ένα αίτημα POST στέλνει δεδομένα στο σώμα του μηνύματος του αιτήματος. Αυτό καθιστά τα αιτήματα POST πιο ασφαλή για τη μετάδοση ευαίσθητων πληροφοριών.
Μπορείτε να κάνετε ένα αίτημα POST με curl στην παρακάτω μορφή:
μπούκλα -X POST -δ
Για παράδειγμα:
curl -X POST -d 'name=jack' -d '[email protected]' \
https://example.com/users
Η παραπάνω εντολή στέλνει ένα αίτημα POST στο https://example.com/users με τα δεδομένα που καθορίζονται από την -ρε σημαία ως ωφέλιμο φορτίο.
ο -ρε Η σημαία καθορίζει τα δεδομένα προς αποστολή. Σε αυτήν την περίπτωση, καθόρισε δύο παραμέτρους δεδομένων: όνομα = γρύλος και [email protected].
Όταν χρησιμοποιείτε το -ρε επισημάνετε περισσότερες από μία φορές σε μια εντολή, μπορείτε να συγχωνεύσετε τα πεδία χρησιμοποιώντας το σύμβολο &.
Για παράδειγμα:
curl -d "name=jack&[email protected]" https://example.com/api/users
Ορισμένα δεδομένα που μπορεί να προσπαθήσετε να στείλετε σε ένα αίτημα POST ενδέχεται να είναι δύσκολο να χωρέσουν σε μία συμβολοσειρά στο τερματικό σας. Σε περιπτώσεις όπως αυτή, ίσως είναι ιδανικό να διαβάσετε και να δημοσιεύσετε τα δεδομένα από ένα αρχείο χρησιμοποιώντας curl.
Για να στείλετε δεδομένα από ένα αρχείο σε ένα αίτημα POST ως ωφέλιμο φορτίο με curl, χρησιμοποιήστε το @ υπογράψτε αμέσως μετά το -ρε σημαία, ακολουθούμενη από τη διαδρομή του αρχείου προς το αρχείο που θέλετε να στείλει το curl στο αίτημα.
Για παράδειγμα:
curl -X POST -d @users.txt https://example.com/api/users
Καθορισμός του τύπου περιεχομένου
Χρησιμοποιώντας την -ρε Η σημαία ορίζει αυτόματα την κεφαλίδα Content-Type σε application/x-www-form-urlencoded. Ωστόσο, μπορείτε να καθορίσετε με μη αυτόματο τρόπο τον κατάλληλο τύπο περιεχομένου για το αίτημά σας χρησιμοποιώντας το -Η ή --επί κεφαλής σημαία ακολουθούμενη από τον επιθυμητό τύπο περιεχομένου.
Για παράδειγμα:
curl -H "Content-Type: application/json" \
-d '{"name": "Jack", "email": "[email protected]"}' \
https://example.com/api/users
Στην παραπάνω εντολή, το -Η Η σημαία καθορίζει την κεφαλίδα Content-Type ως Τύπος περιεχομένου: εφαρμογή/json.
Μπορείτε να αντικαταστήσετε εφαρμογή/json με οποιονδήποτε άλλο έγκυρο τύπο MIME ή τύπο περιεχομένου που είναι κατάλληλος για τα δεδομένα που στέλνετε στο σώμα αιτήματος. Για παράδειγμα, κατά τη μεταφόρτωση δυαδικών δεδομένων, όπως αρχείο εικόνας ή ήχου, θα πρέπει να ορίσετε τον τύπο περιεχομένου σε πολυμερών/μορφών-δεδομένων.
Αυτό σας επιτρέπει να καθορίσετε την αναμενόμενη μορφή των δεδομένων που αποστέλλονται, η οποία μπορεί να είναι σημαντική κατά την αλληλεπίδραση με API ή υπηρεσίες web που απαιτούν συγκεκριμένους τύπους περιεχομένου για σωστή επεξεργασία.
Υποβολή αιτήματος HTTP PUT
Ένα αίτημα HTTP PUT είναι μια μέθοδος για την ενημέρωση ενός υπάρχοντος πόρου σε έναν διακομιστή web ή για τη δημιουργία ενός εάν ο πόρος δεν υπάρχει. Αυτή η μέθοδος διαφέρει από τη μέθοδο POST με την έννοια ότι είναι ανίκανη. Αυτό σημαίνει ότι η κλήση της μεθόδου PUT μία ή πολλές φορές διαδοχικά έχει το ίδιο αποτέλεσμα στον διακομιστή.
Μπορείτε να κάνετε ένα αίτημα PUT με curl στην παρακάτω μορφή:
curl -X PUT -H "Content-Type: application/json" \
-d '{"name": "Jack Bauer", "email": "[email protected]"}' \
https://example.com/api/users/4
Η παραπάνω εντολή στέλνει ένα αίτημα PUT σε μορφή JSON στον διακομιστή ιστού που καθορίζεται στην παραπάνω διεύθυνση URL και ενημερώνει τον καθορισμένο πόρο. Εάν ο καθορισμένος πόρος δεν υπάρχει, θα δημιουργήσει τον πόρο στον διακομιστή web.
Υποβολή αιτήματος HTTP DELETE
Ένα αίτημα HTTP DELETE είναι μια μέθοδος για τη διαγραφή ενός καθορισμένου πόρου από έναν διακομιστή web. Παρόμοια με τα αιτήματα PUT, τα αιτήματα DELETE είναι αδύναμα. Η αποστολή του ίδιου αιτήματος DELETE πολλές φορές στον ίδιο πόρο θα παράγει το ίδιο αποτέλεσμα στον διακομιστή.
Μπορείτε να κάνετε ένα αίτημα DELETE με το curl εκτελώντας την παρακάτω εντολή:
μπούκλα -Χ ΔΙΑΓΡΑΦΗ http://example.com/api/users/3
Η παραπάνω εντολή στέλνει ένα αίτημα DELETE στον διακομιστή web που καθορίζεται στην παραπάνω διεύθυνση URL και διαγράφει τον καθορισμένο πόρο.
Τα αιτήματα διαγραφής αφαιρούν οριστικά τον καθορισμένο πόρο από τον διακομιστή. Έτσι, ένας διακομιστής ιστού που υποστηρίζει το DELETE συνήθως απαιτεί μια μορφή έλεγχο ταυτότητας ή εξουσιοδότηση προτού μπορέσετε να υποβάλετε αυτό το αίτημα.
Δείτε πώς μπορείτε να κάνετε ένα αίτημα DELETE με μια κεφαλίδα εξουσιοδότησης:
curl -X DELETE -H "Authorization: Bearer my_access_token" \
https://example.com/api/users/3
Η παραπάνω εντολή παρέχει τις πληροφορίες ελέγχου ταυτότητας στην κεφαλίδα αιτήματος χρησιμοποιώντας τη μέθοδο ελέγχου ταυτότητας Bearer με το -Η σημαία. Εξουσιοδότηση: Φορέας my_access_token είναι η τιμή της κεφαλίδας. my_access_token είναι ένα σύμβολο κράτησης θέσης για την πραγματική αξία του διακριτικού πρόσβασής σας.
Άλλοι τρόποι με τους οποίους μπορείτε να κάνετε αιτήματα HTTP
Εκτός από το curl, υπάρχουν πολλοί τρόποι για να κάνετε αιτήματα HTTP ανάλογα με το περιβάλλον του αιτήματος. Οι πιο συνηθισμένες μέθοδοι περιλαμβάνουν τη χρήση ενός προγράμματος περιήγησης ιστού όπως το Chrome, ενός εργαλείου GUI όπως ο Postman ή ενός προγράμματος-πελάτη API.
Κάθε μία από αυτές τις επιλογές συνοδεύεται από τα πλεονεκτήματα και τα μειονεκτήματά της. Τελικά, η επιλογή ενός εργαλείου θα εξαρτηθεί από τις απαιτήσεις της εργασίας σας.