BaxCoders
BaxCoders
خواندن ۲ دقیقه·۳ سال پیش

کاربرد دستور curl لینوکس و ارسال درخواست HTTP


یکی از دستور های قدرتمند و مهم لینوکس curl هست که همه لازمه برای سرعت بیشتر توی کار هامون بلد باشیم.

با curl میتونید هر نوع درخواستی رو به سرور ارسال کنید, میتونید یه فایل رو دانلود یا آپلود کنید و از پروتکل های زیر پیشتیبانی میکنه:

http https ftp smtp smtps telnet dict file ftps gopher imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs tftp

این دستور به احتمال زیاد بصورت پیشفرض روی توزیع لینوکس شما نصب شده ولی برای اطمینان بیشتر دستور زیر رو توی ترمینال بزنید و اگه بهتون ارور نداد یعنی نصب شده:

curl --version
ترمینال من بعد از دستور curl --version و این یعنی نصب شده
ترمینال من بعد از دستور curl --version و این یعنی نصب شده


اگه نصب نشده بود و ارور داد این دستورات رو با توجه به توزیع خودتون برای نصب بزنید:‌

Debian / Ubuntu

sudo apt-get install curl
dpkg -l | grep curl

Fedora / RHEL / CentOS / Arch

yum install curl
rpm -qa | grep curl

OpenSUSE

zypper install curl
zypper se curl

Arch

pacman -Sy curl

حالا اگه دوباره دستور curl --version رو بزنید نباید ارور بگیرید

دانلود و آپلود فایل

یکی از کاربرد های curl که خیلی به کارتون میاد دانلود و آپلود فایل هست, خیلی راحت میتونید چند فایل تا رو با هم آپلود/دانلود کنید

دانلود

با دستور زیر میشه فایل رو دانلود کرد:‌

curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

و با دستور زیر فایل با اسمی که وارد کنید دانلود و ذخیره میشه:‌

curl -o custom_name.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js

میتونید چند فایل رو همزمان هم دانلود کنید:

curl -O http://test.com/file.exe -O https://test.com/script.sh

آپلود

با دستور زیر فایل به آدرس لینکی که جایگزین کنید آپلود میشه:

curl -F 'data=@path/to/local/file' UPPLOAD_ADDRESS

با دستور زیر هم میشه چند تا فایل رو آپلود کرد:

curl -F 'fileX=@/path/to/fileX.exe' -F 'fileY=@/path/to/fileY.sh' UPLOAD_ADDRESS

و برای آپلود فایل بصورت آرایه‌:

curl -F 'files[]=@/path/to/fileX.png' -F 'files[]=@/path/to/fileY.jpg' UPLOAD_ADDRESS


ارسال درخواست HTTP

این تیکه مهم ترین و کاربردی ترین قسمتشه که خودمم خیلی استفاده میکنم XD

با این دستور یه درخواست از نوع GET به سرور ویرگول ارسال میشه و پاسخ رو با محتویات text/html دریافت میکنید:

curl https://virgool.io

با این دستور میشه فقط محتویات Header رو از پاسخ سرور گرفت:

curl -I https://virgool.io

میتونید user-agent درخواست رو هم عوض کنید:

curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://virgool.io

برای عوض کردن متود درخواست هم به اینصورت عمل میکنیم:

curl -X POST https://virgool.io

برای تغییر Header های درخواست میتونید از -H استفاده کنید:

curl -H "Content-Type: application/json" -H "Cache-Control: no-cache" https://virgool.io

ارسال درخواست POST به همراه body:

curl -d '{"option": "value", "something": "anothervalue"}' https://virgool.io

و برای ارسال کوکی:

curl -v --cookie "USER_TOKEN=empty" https://virgool.io


حتی میتونید از پروکسی هم استفاده کنید:

curl -x 192.168.44.1:8888 http://virgool.io


اگه چیزی کم بودی داخل کامنت بگید اضافه کنم :)
نویسنده: پسر

ما رو توی بقیه پلتفرم ها دنبال کنید --->

Telegram
Instagram
Aparat

curllinuxubuntugnu
جامعه برنامه نویسان جوان
شاید از این پست‌ها خوشتان بیاید