Πώς να στείλετε ένα αίτημα POST με curl: πλήρης αναφορά

Πώς να στείλετε ένα αίτημα POST με curl: πλήρης αναφορά

Αυτή τη στιγμή, κάπου στον κόσμο εκτελούνται περίπου είκοσι δισεκατομμύρια εγκαταστάσεις του curl. Αυτός ο αριθμός προέρχεται από τον δημιουργό του εργαλείου, Daniel Stenberg, ο οποίος το συντηρεί σχεδόν μόνος του. Το curl ενσωματώνεται σε δρομολογητές, αυτοκίνητα, δορυφόρους, έξυπνες τηλεοράσεις, διακομιστές Linux που υποστηρίζουν το μεγαλύτερο μέρος του δημόσιου ιστού και σε κάθε σημαντικό χρόνο εκτέλεσης LLM. Από όλα τα ρήματα HTTP που χρησιμοποιούν αυτές οι εγκαταστάσεις, το POST κάνει τη δύσκολη δουλειά. Ένα curl POST είναι ο τρόπος με τον οποίο οι περισσότεροι προγραμματιστές δοκιμάζουν, εντοπίζουν σφάλματα ή ενσωματώνονται με ένα API για πρώτη φορά.

Η έκθεση της Postman για την κατάσταση των API για το 2025 τοποθετεί το REST σε ποσοστό υιοθέτησης 93%. Το 82% των οργανισμών λειτουργούν πλέον τουλάχιστον εν μέρει με προτεραιότητα στο API. Το POST είναι το ρήμα που χρησιμοποιείτε κάθε φορά που δημιουργείτε, υποβάλλετε ή μεταδίδετε δεδομένα σε έναν διακομιστή. Τα φόρτα εργασίας τεχνητής νοημοσύνης επιτάχυναν περαιτέρω αυτή την τάση. Η επισκεψιμότητα API που αποδίδεται στη χρήση τεχνητής νοημοσύνης αυξήθηκε κατά 73% το 2024 (Postman, 2024) και η τεκμηρίωση κάθε παρόχου LLM ξεκινά πλέον με ένα απόσπασμα curl POST ως την κανονική «πρώτη κλήση».

Αυτή η αναφορά περιγράφει κάθε μορφή που μπορεί να πάρει ένα αίτημα POST χρησιμοποιώντας το curl, από το ελάχιστο μιας γραμμής έως μια λειτουργική κλήση σε ένα πραγματικό API πληρωμής κρυπτονομισμάτων. Στόχος: κάτι από το οποίο μπορείτε να κάνετε επικόλληση, όχι απλώς να το διαβάσετε. Αποστολή δεδομένων σε έναν διακομιστή για πρώτη φορά ή ανακατασκευή ενός χειριστή webhook στις 2 π.μ., τα παρακάτω μοτίβα καλύπτουν αυτό που πραγματικά χρειάζεστε.

Ο παρακάτω πίνακας είναι η σύντομη έκδοση. Φύλλο με πληροφορίες για τη σημαίες και τον σκοπό που καλύπτει τις επιλογές γραμμής εντολών curl που χρησιμοποιούνται συχνότερα κατά την αποστολή αιτημάτων POST. Κάθε μία από αυτές αναλύεται στις ακόλουθες ενότητες.

Σημαία Τι κάνει Όταν το πιάνεις
`-X POST`, `--αίτημα POST` Επιβάλλει τη μέθοδο αιτήματος HTTP σε POST Σαφής μέθοδος ή ασυνήθιστα ρήματα
`-d`, `--δεδομένα` Στέλνει δεδομένα στο σώμα του αιτήματος, ορίζει αυτόματα το POST Πεδία φόρμας, ενσωματωμένο JSON, απλά ωφέλιμα φορτία
`--δυαδικό-δεδομένων` Στέλνει αρχεία ή δυαδικά δεδομένα χωρίς να αφαιρεί νέες γραμμές Μεταφορτώσεις αρχείων, μεγάλο JSON, ακατέργαστα δυαδικά δεδομένα
`--data-urlencode` URL - κωδικοποιεί την τιμή πριν από την αποστολή Τιμές με κενά ή ειδικούς χαρακτήρες
`--json` Στέλνει δεδομένα με `Content-Type: application/json` και `Accept: application/json` curl 7.82.0 ή νεότερη έκδοση, JSON APIs
`-H`, `--επικεφαλίδα` Προσθέτει μια προσαρμοσμένη κεφαλίδα HTTP Τύπος περιεχομένου, Εξουσιοδότηση, Κλειδιά API
`-F`, `--μορφή` Αποστέλλει δεδομένα πολλαπλών τμημάτων/φόρμας με πεδία ή αρχεία φόρμας Μεταφορτώσεις αρχείων, φόρμες σε στυλ HTML
`-u`, `--χρήστης` Αποστέλλει διαπιστευτήρια βασικού ελέγχου ταυτότητας HTTP Παλαιότερα API, απλή εξουσιοδότηση ονόματος χρήστη-κωδικού πρόσβασης
`-i`, `--include` Περιλαμβάνει κεφαλίδες απόκρισης στην έξοδο Επιθεώρηση απαντήσεων διακομιστή
`-v`, `--λεπτομερής` Εκτυπώνει το πλήρες αίτημα και την απάντηση, συμπεριλαμβανομένων των κεφαλίδων Εντοπισμός σφαλμάτων σε ένα αποτυχημένο αίτημα POST

Κατανόηση του αιτήματος curl POST και της μεθόδου HTTP

Ένα αίτημα curl POST είναι ένα αίτημα HTTP POST, που αποστέλλεται με τη μέθοδο POST και ενεργοποιείται από τη γραμμή εντολών. Το ίδιο το εργαλείο curl περιγράφει τη δουλειά του ως "μεταφορά δεδομένων" σε περισσότερα από δύο δωδεκάδες πρωτόκολλα, εκ των οποίων το HTTP είναι μόνο ένα. POST σημαίνει: ορίστε μερικά δεδομένα, κάντε κάτι με αυτά. Το ωφέλιμο φορτίο πηγαίνει στο σώμα του αιτήματος, ποτέ στη διεύθυνση URL. Αυτή η ιδιότητα είναι ο λόγος για τον οποίο το POST χειρίζεται τη δημιουργία πόρων, τις υποβολές φορμών και οτιδήποτε περιέχει διαπιστευτήρια. Το GET αποθηκεύει δεδομένα στη συμβολοσειρά ερωτήματος, ορατά σε κάθε διακομιστή μεσολάβησης και σε κάθε ιστορικό προγράμματος περιήγησης. Το POST δεν το κάνει.

Τα περισσότερα εκπαιδευτικά σεμινάρια παραλείπουν μια μικρή αλλά χρήσιμη λεπτομέρεια. Η μετάβαση του `-d` και η αυτόματη μετάβαση στο curl σε POST. Το ρητό `-X POST`, το οποίο καθορίζει μια προσαρμοσμένη μέθοδο αιτήματος που θα χρησιμοποιηθεί, είναι προαιρετικό. Πολλά παραδείγματα το περιλαμβάνουν ακόμα επειδή η ανάγνωση του `-X POST` δίπλα σε ένα ωφέλιμο φορτίο κάνει την πρόθεση προφανή με μια ματιά.

Οι όροι PUT και POST συγχέονται τόσο συχνά που αξίζει να είναι συγκεκριμένοι. Ο PUT αντικαθιστά έναν πόρο σε μια γνωστή τοποθεσία. Ο POST δημιουργεί έναν νέο ή στέλνει δεδομένα για επεξεργασία σε ένα γενικό τελικό σημείο.

Αίτημα ΔΗΜΟΣΙΕΥΣΗΣ με καμπύλη

Βασική σύνταξη curl POST και η σημαία -d στην πράξη

Το ελάχιστο curl POST είναι μία γραμμή:

```

curl -d "όνομα χρήστη=arya&ηλικία=16" https://api.example.com/users

```

Αυτό είναι όλο. Αίτημα POST, σώμα με κωδικοποίηση form-urlencoded, χωρίς κόπο. Το `-d` κάνει τριπλή λειτουργία: γεμίζει το ωφέλιμο φορτίο στο σώμα του αιτήματος, αντιστρέφει τη μέθοδο αιτήματος σε POST και προσθέτει το `Content-Type: application/x-www-form-urlencoded` ως προεπιλεγμένη κεφαλίδα. Συνήθως επικολλώ την ελαφρώς πιο λεπτομερή φόρμα ούτως ή άλλως, επειδή η πρόθεση POST διαβάζεται καλύτερα σε μια ανασκόπηση κώδικα:

```

curl -X POST -d "όνομα χρήστη=arya&ηλικία=16" https://api.example.com/users

```

Ίδια bytes στο καλώδιο. Ίδια ορίσματα αιτήματος. Χρησιμοποιήστε όποιο η ομάδα σας θεωρεί πιο εύκολο να σαρώσει. Η σημαία `-d` είναι ο κινητήριος μοχλός που χρησιμοποιείται για την αποστολή δεδομένων σε έναν διακομιστή από τη γραμμή εντολών και χειρίζεται το ενενήντα τοις εκατό όσων ένας προγραμματιστής backend ρίχνει ποτέ στο curl: κλήσεις shell, δοκιμές webhook, στόχους Makefile, βήματα ενεργειών GitHub.

Τρία στενά ξαδέρφια του `-d`. Το `--data-binary` διατηρεί τα byte σας άθικτα. Το απλό `-d` αφαιρεί τις νέες γραμμές και θα παραμορφώσει ένα δυαδικό ωφέλιμο φορτίο. Το `--data-urlencode` percent-encodes για εσάς: Το `--data-urlencode "name=I am Daniel"` φτάνει ως `name=I%20am%20Daniel`. Το `--data-raw` είναι η καταπακτή διαφυγής όταν μια τιμή ξεκινά με `@` και το curl δεν πρέπει να διαβάσει ένα αρχείο. Πολλαπλές σημαίες `-d` ενώνονται με `&`. Κατάλληλο για φόρμες. Ποτέ για JSON.

Ένα τελευταίο πρόβλημα: η αναφορά σε εισαγωγικά. Τα μονά εισαγωγικά γύρω από το ωφέλιμο φορτίο εμποδίζουν το κέλυφος να ερμηνεύσει τα `$` ή τις ανάστροφες καθέτους. Ξεχάστε τα και θα περάσετε 2 π.μ. αναρωτώμενοι γιατί λείπουν τα μισά δεδομένα POST σας.

Αυτές οι λεπτομέρειες έχουν σημασία επειδή το ίδιο το curl είναι ένα από τα πιο δοκιμασμένα HTTP clients στον πλανήτη. Η αναδρομική έκθεση του Stenberg τον Δεκέμβριο του 2025 κατέγραψε οκτώ κυκλοφορίες εκείνο το έτος. Εννέα CVE, όλα με χαμηλή ή μέτρια βαθμολογία. 2.179 ενεργές περιπτώσεις δοκιμών, 232 περισσότερες από δώδεκα μήνες νωρίτερα. Έκδοση 8.11.1, Δεκέμβριος 2024, με επιδιορθωμένο CVE-2024-11053 (διαρροή διαπιστευτηρίων netrc-and-redirect). Η τρέχουσα σταθερή έκδοση από τα τέλη Απριλίου 2026 είναι η curl 8.20.0. Όποιος έχει κολλήσει κάτω από την έκδοση 7.82.0 εξακολουθεί να μην έχει σημαία `--json` και επιστρέφει στο παλαιότερο μοτίβο τριών σημαιών.

Αποστολή δεδομένων JSON με curl χρησιμοποιώντας --json ή -H

Το JSON είναι η lingua franca των REST API το 2026. Υπάρχουν δύο τρόποι για να το κάνετε POST με το curl. Ποιος από τους δύο θα χρησιμοποιηθεί εξαρτάται αποκλειστικά από την έκδοση του curl που υπάρχει στον υπολογιστή.

Κλασικό μοτίβο τριών σημαιών, λειτουργεί παντού από το CentOS 6 και μετά:

```

μπούκλα -X POST \

-H "Τύπος περιεχομένου: εφαρμογή/json" \

-d '{"title":"Tea","quantity":2}' \

https://api.example.com/orders

```

Σύγχρονη συντομογραφία, διαθέσιμη από την έκδοση curl 7.82.0 (Μάρτιος 2022):

```

curl --json '{"title":"Tea","quantity":2}' https://api.example.com/orders

```

Η σημαία `--json` κάνει τρία πράγματα. Ορίζει το `Content-Type: application/json`. Ορίζει το `Accept: application/json`. Στέλνει το κυρίως σώμα. Συνθέτει επίσης: μεταβιβάζει το `--json` περισσότερες από μία φορές, τα ωφέλιμα φορτία συνενώνονται. Χρήσιμο κατά την διοχέτευση κομμάτια JSON σε ένα τελικό σημείο ροής.

Για τα ωφέλιμα φορτία JSON που είναι αποθηκευμένα σε ένα αρχείο, προσθέστε το πρόθεμα `@` στη διαδρομή του αρχείου. Η δημοσίευση δεδομένων από ένα αρχείο γίνεται το τυπικό μοτίβο όταν το αντικείμενο JSON είναι πολύ μεγάλο για επικόλληση εντός γραμμής ή όταν βρίσκεται στον έλεγχο έκδοσης ή όταν το δημιουργήσει ένα άλλο σενάριο:

```

curl -X POST -H "Τύπος περιεχομένου: εφαρμογή/json" -d @order.json https://api.example.com/orders

curl --json @order.json https://api.example.com/orders

```

Το δεύτερο μοτίβο διαβάζει τα δεδομένα από ένα αρχείο με όνομα `order.json` και τα στέλνει με όλες τις σωστές κεφαλίδες. Για μεγάλο ή δυνητικά δυαδικό περιεχόμενο JSON, το `--data-binary @file.json` είναι η ασφαλέστερη επιλογή. Δεν αφαιρεί τις νέες γραμμές, δεν ερμηνεύει ειδικούς χαρακτήρες και στέλνει ακατέργαστα δυαδικά δεδομένα σε ένα τελικό σημείο που αναμένει byte αντί για πεδία φόρμας. Ένα τρίτο μοτίβο διαβάζει τα δεδομένα από το stdin μέσω `-d @-`. Χρήσιμο κατά την διοχέτευση εξόδου από μια άλλη εντολή απευθείας σε ένα curl POST.

Ο παρακάτω πίνακας αντιστοιχίζει τα τέσσερα κοινά σχήματα JSON σε ένα μόνο τελικό σημείο:

Πρότυπο Εντολή Πότε να χρησιμοποιήσετε
Ενσωματωμένο, κλασικό `-X POST -H "Τύπος-περιεχομένου: εφαρμογή/json" -d '{"k":"v"}'` Μέγιστη συμβατότητα, οποιαδήποτε έκδοση για μπούκλες
Ενσωματωμένο, μοντέρνο `--json '{"k":"v"}'` curl 7.82.0 ή νεότερη έκδοση, η πιο καθαρή σύνταξη
Από το αρχείο, ασφαλές `-X POST -H "..." -d @payload.json` Το ωφέλιμο φορτίο διατηρείται στον έλεγχο έκδοσης
Από αρχείο, ασφαλές για δυαδικά αρχεία `-X POST -H "..." --data-binary @payload.json` Μεγάλα αρχεία, ωφέλιμα φορτία με νέες γραμμές

Αυτό έχει μεγαλύτερη σημασία από ό,τι παλιά. Κάθε μεγάλος πάροχος LLM — OpenAI, Anthropic, Mistral, Google — ανοίγει τα έγγραφα API του με ένα παράδειγμα curl POST χρησιμοποιώντας ακριβώς αυτό το σχήμα. Η επισκεψιμότητα που βασίζεται στην τεχνητή νοημοσύνη πρόσθεσε 73% στον συνολικό όγκο κλήσεων API το 2024 (Postman). Το curl είναι πλέον η κανονική αναφορά για το "πώς μπορώ να καλέσω αυτό το τελικό σημείο".

Αίτημα ΔΗΜΟΣΙΕΥΣΗΣ με καμπύλη

Τύπος περιεχομένου, κεφαλίδες και τι υποθέτει το curl

Οι περισσότερες απαντήσεις "415 Unsupported Media Type" καταλήγουν σε μία ελλείπουσα κεφαλίδα. Με το `-d`, το curl σφραγίζει αθόρυβα το αίτημά σας `Content-Type: application/x-www-form-urlencoded`. Στείλτε ένα σώμα JSON χωρίς `-H "Content-Type: application/json"` ή `--json` και λαμβάνετε πίσω το μήνυμα 415. Δεν υπάρχει προειδοποίηση, μόνο η απόρριψη.

Άλλα μεταδεδομένα συνοδεύονται επίσης από το σώμα: το Content-Length, η κεφαλίδα Authorization, το X-Request-Id για την ιχνηλάτηση. Η σωστή επεξεργασία αυτών των μεταδεδομένων είναι η μισή προσπάθεια για οποιαδήποτε ενσωμάτωση API. Το ίδιο το αντικείμενο JSON είναι το εύκολο μισό.

Το `-H` προσθέτει προσαρμοσμένες κεφαλίδες. Επαναλάβετε όποτε χρειάζεται. Τα ονόματα κεφαλίδων δεν κάνουν διάκριση πεζών-κεφαλαίων, ενώ οι τιμές όχι. Ο ταχύτερος τρόπος για να εντοπίσετε σφάλματα σε ένα λανθασμένα διαμορφωμένο POST: εκτελέστε το με `-v` μία φορά, διαβάστε τη γραμμή αιτήματος, κάντε diff στα έγγραφα API. Οκτώ φορές στις δέκα το σφάλμα εμφανίζεται σε δευτερόλεπτα.

Δύο ακόμη σημειώσεις. Το Content-Length ορίζεται αυτόματα από το curl από το μέγεθος του σώματος. σπάνια το παρακάμπτετε. Το `Accept: application/json` είναι αυτό που λέει στον διακομιστή να απαντήσει σε JSON αντί για HTML. Προσθέστε ένα άλλο `-H` για αυτό ή χρησιμοποιήστε το `--json`, το οποίο ορίζει τον Content-Type και το Accept μαζί.

Δεδομένα φόρμας και μεταφορτώσεις αρχείων με curl POST -F

Για δεδομένα φόρμας σε στυλ HTML με αρχεία, η δεξιά σημαία είναι `-F`. Παράγει ένα αίτημα `multipart/form-data`. Διαφορετικός τύπος περιεχομένου από αυτόν που έχει προεπιλεγεί με το `-d` και έχει κωδικοποιηθεί με την μορφή urlencode. Διαφορετικό νοητικό μοντέλο. Τα tutorials μιας παραγράφου συγχέουν τα δύο αρκετά συχνά ώστε να προκαλούν πραγματικά σφάλματα.

`-F` μία φορά ανά πεδίο. Πεδίο απλής μορφής:

```

curl -F "όνομα=Arya" https://api.example.com/submit

```

Μια μεταφόρτωση αρχείου:

```

curl -F "αρχείο=@/διαδρομή/προς/εικόνα.png" https://api.example.com/upload

```

Το πρόθεμα `@` λέει στο curl να διαβάσει το αρχείο από τον δίσκο και να συμπεριλάβει τα περιεχόμενά του στο σώμα του αιτήματος. Το curl ανιχνεύει αυτόματα τον τύπο MIME από το όνομα του αρχείου· τον παρακάμπτει ρητά όταν χρειάζεται:

```

curl -F "αρχείο=@φωτογραφία.png;τύπος=εικόνα/png" https://api.example.com/upload

```

Πολλαπλές σημαίες `-F` συσκευάζουν πολλά πεδία ή αρχεία σε ένα αίτημα:

```

curl -F "τίτλος=Διακοπές" -F "εικόνα=@παραλία.jpg" -F "εικόνα=@ηλιοβασίλεμα.jpg" https://api.example.com/album

```

Για περιεχόμενα ακατέργαστων αρχείων χωρίς το περιτύλιγμα πολλαπλών τμημάτων, μια συνηθισμένη ανάγκη κατά την ανάρτηση ενός αρχείου JSON ή ενός δυαδικού blob σε ένα τελικό σημείο ροής, χρησιμοποιήστε αντ' αυτού την εντολή `--data-binary @file.bin`. Αυτό στέλνει τα byte του αρχείου ως το σώμα του αιτήματος αυτούσια, με όποιον Τύπο Περιεχομένου ορίσετε ρητά.

Έλεγχος ταυτότητας στο curl POST: βασικό, κομιστή, κλειδιά API

Τρία σχήματα εξουσιοδότησης καλύπτουν σχεδόν κάθε REST API το 2026. Βασική εξουσιοδότηση (όνομα χρήστη συν κωδικός πρόσβασης, κωδικοποίηση base64 σε κεφαλίδα):

```

curl -u "myuser:mypass" -X POST -d "..." https://api.example.com/login

```

Τα διακριτικά κομιστή, που χρησιμοποιούνται από τα περισσότερα σύγχρονα API, συμπεριλαμβανομένων κάθε διαπιστευτηρίου που εκδίδεται από το OAuth, βασίζονται σε μια προσαρμοσμένη κεφαλίδα Εξουσιοδότησης:

```

curl -H "Εξουσιοδότηση: Φορέας $TOKEN" --json '{"q":"hello"}' https://api.example.com/query

```

Τα κλειδιά API συνήθως βρίσκονται σε μια κεφαλίδα συγκεκριμένη για την υπηρεσία:

```

curl -H "X-API-Key: $PLISIO_KEY" --json @invoice.json https://api.plisio.net/api/v1/invoices/new

```

Διαπιστευτήρια από μεταβλητή περιβάλλοντος ή διαχειριστή μυστικών πληροφοριών, που δεν πληκτρολογήθηκαν ποτέ ενσωματωμένα. Γιατί; Η μελέτη State of Secrets Sprawl του GitGuardian για το 2025 κατέγραψε 23,8 εκατομμύρια νέα μυστικά που διέρρευσαν στο δημόσιο GitHub κατά τη διάρκεια του 2024. Μια αύξηση 25% σε σχέση με το 2023. Περισσότερο από το 90% αυτών παρέμειναν έγκυρα πέντε ημέρες μετά την αποκάλυψη. Τα ενσωματωμένα διαπιστευτήρια σε σενάρια curl αποτελούν κύρια πηγή αυτών των διαρροών. Η ενότητα ασφαλείας που ακολουθεί καλύπτει τη ροή εργασίας.

Παράδειγμα curl POST πραγματικού κόσμου: API πληρωμών Plisio

Τα έγγραφα αναφοράς χωρίς πραγματικό παράδειγμα είναι θεωρία. Το παρακάτω POST εκδίδει ένα τιμολόγιο πληρωμής κρυπτονομισμάτων μέσω του REST API της Plisio. Η Plisio χρεώνει 0,5% σταθερή τιμή· οι επεξεργαστές καρτών συνήθως 2-4%. Η Plisio υποστηρίζει τριάντα και πλέον κρυπτονομίσματα και παρέχει ενσωματώσεις για δεκαεννέα πλατφόρμες ηλεκτρονικού εμπορίου.

Γιατί τα API κρυπτονομισμάτων λειτουργούν ως στόχοι πρακτικής. Τα Stablecoins σημείωσαν πραγματικό οικονομικό όγκο περίπου 28 τρισεκατομμυρίων δολαρίων κατά τη διάρκεια του 2025. Η Chainalysis προέβλεψε την ανάπτυξη στο 133% CAGR από το 2023. Η αγορά πυλών πληρωμών κρυπτονομισμάτων κυμάνθηκε κοντά στα 2 δισεκατομμύρια δολάρια το 2025, σε καλό δρόμο για 2,39 δισεκατομμύρια δολάρια το 2026 (σύμφωνα με την The Business Research Company). BitPay, Coinbase Commerce, Plisio: επιλέξτε οποιοδήποτε. Το πρώτο βήμα ενσωμάτωσης με οποιαδήποτε σύγχρονη πύλη είναι σχεδόν πάντα ένα curl POST.

Η ελάχιστη κλήση για τη δημιουργία ενός νέου τιμολογίου:

```

curl -X POST https://api.plisio.net/api/v1/invoices/new \

-H "Τύπος περιεχομένου: εφαρμογή/json" \

-H "Εξουσιοδότηση: Φορέας $PLISIO_API_KEY" \

-d '{

"source_currency": "USD",

"source_amount": 49.99,

"order_number": "INV-1042",

"currency": "BTC",

"email": "[email protected]",

"order_name": "Annual subscription"

}'

```

Μια επιτυχημένη κλήση επιστρέφει HTTP 201. Το σώμα απόκρισης είναι ένα αντικείμενο JSON: ένα δημιουργημένο αναγνωριστικό τιμολογίου, μια `invoice_url` στην οποία πληρώνει ο πελάτης, μια διεύθυνση πορτοφολιού προορισμού, μια χρονική σήμανση λήξης. Πραγματοποιήστε διοχέτευση μέσω του `jq` για να εμφανίσετε όποιο πεδίο χρειάζεστε στη συνέχεια:

```

... | jq '.data.invoice_url'

```

Αυτό είναι όλο το μοτίβο. Αλλάξτε το τελικό σημείο, αλλάξτε το ωφέλιμο φορτίο και το σχήμα μεταφέρεται κατευθείαν σε μια χρέωση BitPay, μια ολοκλήρωση αγοράς Coinbase Commerce ή μια πρόθεση πληρωμής Stripe. Οι σημαίες δεν αλλάζουν. Μόνο το JSON αλλάζει.

Εντοπισμός σφαλμάτων σε ένα αίτημα curl POST: -v, --trace, σφάλματα

Ένα αποτυχημένο POST είναι ένα αίνιγμα εντοπισμού σφαλμάτων. Η επανάληψη της διαδικασίας στα τυφλά είναι η χειρότερη κίνηση. Τέσσερις επιλογές στη γραμμή εντολών καλύπτουν τα περισσότερα από αυτά που χρειάζεστε.

Η `-v` εκτυπώνει τη γραμμή αιτήματος, κάθε κεφαλίδα αιτήματος και την κατάσταση απόκρισης. Αυτή είναι η πρώτη σημαία που αναζητάτε. Η `--trace-ascii -` είναι η μεγαλύτερη σηματοδότηση: αποστέλλει ολόκληρη τη συνομιλία, συμπεριλαμβανομένου του σώματος ενός POST, στην τυπική έξοδο. Χρησιμοποιήστε την `curl -i` για να ενσωματώσετε τις κεφαλίδες απόκρισης πάνω από το σώμα. Και η `-w "%{http_code}\n"` γράφει μόνο τον κωδικό κατάστασης HTTP, χρήσιμο κατά τη δημιουργία σεναρίων για ελέγχους CI σε ένα API.

Σχετικά με τους κωδικούς κατάστασης που θα βλέπετε πιο συχνά. 400: ο διακομιστής ανέλυσε το αίτημά σας αλλά απέρριψε το ωφέλιμο φορτίο. 401: η κεφαλίδα εξουσιοδότησης λείπει ή είναι μη έγκυρη. 415: λάθος τύπος περιεχομένου. 500: ο διακομιστής παρουσίασε σφάλμα κατά την εισαγωγή σας. Κάθε ένας από αυτούς αποκλείει ένα συγκεκριμένο επίπεδο, το οποίο έχει τη μισή τιμή από την εκτέλεση της συνάρτησης `-v` στην πρώτη αποτυχία.

Ασφάλεια curl POST: Κλειδιά API, μυστικά και διαρροές

Κάθε αναφορά παραλείπει αυτήν την ενότητα. Κάθε περιστατικό μετά θάνατον το αναφέρει. Δεκέμβριος 2024: η παραβίαση του Υπουργείου Οικονομικών των ΗΠΑ αποδίδεται σε ένα διαρροή κλειδιού API BeyondTrust. Ακριβώς το είδος των διαπιστευτηρίων που βρίσκονται μέσα στις κεφαλίδες `-H "Authorization: Bearer ..." στα σενάρια παραγωγής.

Η άμυνα δεν είναι ελκυστική. Διαβάστε tokens από μεταβλητές περιβάλλοντος. Αποθηκεύστε τα σε έναν μυστικό διαχειριστή όπως το AWS Secrets Manager, το HashiCorp Vault ή το 1Password CLI. Διατηρήστε ένα pre-commit hook που εκτελεί το `gitleaks` ή το `trufflehog`. Εναλλάξτε οποιοδήποτε token που υπήρξε ποτέ στην ιστορία του shell. Τίποτα από αυτά δεν είναι συναρπαστικό. Όλα λειτουργούν. Η εφαρμογή του σε κάθε αίτημα curl POST που στέλνετε είναι η πιο σημαντική συνήθεια που μπορεί να δημιουργήσει ένας προγραμματιστής backend το 2026.

Καμιά ερώτηση?

Δύο σχήματα. Μεταφόρτωση πολλαπλών τμημάτων (μορφή HTML φόρμας): `curl -F "file=@/path/to/file.png" https://api.example.com/upload`. Ακατέργαστο δυαδικό αρχείο, χωρίς περιτύλιγμα: `curl --data-binary @file.bin -H "Content-Type: application/octet-stream" https://api.example.com/raw`. Το `@` είναι αυτό που κάνει το curl να διαβάζεται από τον δίσκο.

curl 7.82.0 (Μάρτιος 2022) και νεότερη: `curl --json `{"key":"value"}` https://api.example.com`. Σε παλαιότερες εκδόσεις, μοτίβο τριών σημαιών: `curl -X POST -H "Content-Type: application/json" -d `{"key":"value"}` https://api.example.com`. Το JSON βρίσκεται ήδη σε αρχείο; Πρόθεμα με `@`: `--json @payload.json` ή `-d @payload.json`.

Δεν θα έλεγα κανένα από τα δύο "καλύτερα". Το curl κερδίζει οπουδήποτε ένα shell ξεπερνά ένα GUI: μεμονωμένες κλήσεις, εργασίες CI, οτιδήποτε προσεγγίζετε μέσω SSH. Το Postman κερδίζει σε αποθηκευμένες συλλογές, παράλληλες διαφορές και ομαδικές ροές εργασίας. Κρατάω και τα δύο μαζί μου.

Ανοίξτε το κέλυφος, επικολλήστε την εντολή `curl -X POST -d "field=value" https://api.example.com/endpoint`, πατήστε enter. Το τελικό σημείο θέλει JSON; Προσθέστε `-H "Content-Type: application/json"` ή χρησιμοποιήστε `--json` εάν βρίσκεστε σε curl 7.82.0 ή νεότερη έκδοση. Η έξοδος εκτυπώνεται σε stdout, έτοιμη για `jq`.

Η GET, από μόνη της. Το POST ενεργοποιείται με τη δεύτερη εντολή `-d`, `--data`, `--data-binary`, `--data-urlencode`, `-F` ή `--json`. Οτιδήποτε άλλο (PATCH, DELETE, PROPFIND) χρειάζεται `-X` επειδή κανένα από αυτά δεν έχει σημαία "συντόμευσης".

Αυτό που λαμβάνετε από το `curl -X POST` (ή οποιαδήποτε σημαία αποστολής δεδομένων) σε ένα τερματικό. Το ρήμα λέει στον διακομιστή "πάρε αυτό και κάνε κάτι". Το πιάνω για να δοκιμάσω ένα τελικό σημείο REST, να αναπαράγω ένα webhook που πέθανε στο prod ή να κάνω smoke ένα Lambda αμέσως μετά την ανάπτυξη.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.