طبق نوشته خود وبسایت curl این ابزار توی محیط کامندلاین یا اسکریپتها برای انتقال اطلاعات تحت پروتکل های مختلف(خیلی مختلف?) استفاده میشه. البته فقط محدود به محیط کامندلاین نمیشه بلکه توی ماشینا و کلی جاهای دیگه هم استفاده میشه!
ما توی این مقاله صرفا از پروتکل HTTP استفاده میکنیم ;)
طبق نوشته ویکیپدیا برای اولین بار توی سال 1997 منتشر شده و اون موقع اسمش urlget بوده.
curl مخفف Client URL هست.
طبق نوشته وبسایت رسمی curl نسخه فعلیش 7.69.1 هست که توی 11 مارچ 2020 منتشر شده...
شاید ساده ترینش این باشه که git رو نصب کنید تا هم بتونید به curl دسترسی داشته باشید هم یه سری دستورات unix-base دیگه :)
یه گزینه دیگه نصب cmder هست(نسخه فول) که البته اونم در پس زمینه از گیت استفاده میکنه تا اجازه دسترسی به دستورات unix رو بهتون بده ولی قابلیت های خوب دیگه ای هم بهتون میده[اگر علاقه دارید کار با این ابزار رو تا حد خوبی یادبگیرید، آموزشای ویدیوییش رو توی پیج اینستاگرامم گذاشتم]
مرحله اول: به این آدرس برید و وابسته به معماری سیستمتون روی گزینه download بزنید و فایل zip دانلود شده رو توی جایی که عشقتون میکشه paste کنید.
مرحله دوم: وارد پوشه bin بشید و با کلیدای CTRL + L و CTRL + C آدرس پوشهای که فایل curl.exe توش هست رو کپی بکنید.
مرحله سوم: environment variables(متغیرهای محیطی) رو سرچ کنید و روی گزینه ای که توی عکس مشخص هست کلیک کنید
و بعد متغیر PATH رو انتخاب و روی Edit بزنید و بعد New رو بزنید و آدرس پوشه bin رو که توی مرحله قبل کپی کرده بودید paste بکنید.
sudo apt install curl
sudo pacman -S curl
sudo yum install curl
sudo zypper ins curl
doas pkg install curl
sudo brew install curl
ممنون از هومان برای نحوه نصب در گنو/لینوکس و نحوه نصب در مک :)
برای درخواستها توی این مقاله از سرویس رایگان jsonplaceholder استفاده میکنیم که البته دیتاهاش واقعی نیستن :)
توی ساده ترین حالت لازمه که curl رو بنویسید و بعدش آدرسی که میخواید بهش request بزنید رو بدید.
curl http://jsonplaceholder.typicode.com/posts/1
مثل درخواست GET عمل میکنیم + افزودن آپشن data
curl --data "title=curl basics&body=introduce curl in simple term!&userId=1" https://jsonplaceholder.typicode.com/posts
برای منظمتر کردن میتونید چندین بار از آپشن دیتا استفاده بکنید و خود curl زحمت بههم چسبوندنش رو میکشه
جاداره از curl بخاطر زحماتش تقدیر کنیم?
curl --data "title=curl basics" --data "body=introduce curl in simple term!" --data "userId=1" https://jsonplaceholder.typicode.com/posts
curl -X PUT --data "title=title changed!" http://jsonplaceholder.typicode.com/posts/1
curl -X PATCH --data "body=basics of curl!" http://jsonplaceholder.typicode.com/posts/1
curl -X DELETE http://jsonplaceholder.typicode.com/posts/1
برای ارسال فایل از آپشن form استفاده میکنیم
curl --form "fileupload=@my-file.png" https://example.com/resource
اگر بخوایم فقط هدرها رو بگیریم میتونیم از head-- یا I- [حرف i بزرگ] استفاده کنیم
اگر response و هدر رو باهم بخوایم از i- استفاده میکنیم
برای اینکار کافیه از سوییچ o- به علاوه محل فایلتون استفاده کنید
curl http://jsonplaceholder.typicode.com/posts/1 -o first_post.json
curl --data "title=curl basics" --data "body=introduce curl in simple term!" --data "userId=1" https://jsonplaceholder.typicode.com/posts -o new_post.json
curl http://jsonplaceholder.typicode.com/posts/1 -i -o first_post_and_header.txt
عین درخواست GET عمل میکنیم + o- که بالا بررسیش کردیم یا اینکه از O- استفاده میکنیم که با همون اسم خودفایل ذخیره میشه
برای اینکار از آپشن limit-rate-- و میزان سرعت استفاده میکنیم
curl http://jsonplaceholder.typicode.com/posts --limit-rate 1K
B = بایت
K = کیلوبایت
M = مگابایت
G = گیگابایت
برای اینکار کافیه socks5-hostname-- رو مشخص بکنیم
curl ip-api.com/json --socks5-hostname 127.0.0.1:9150
نکته: این آدرس پراکسی برای tor هست
وبسایت curl این کتاب رو پیشنهاد میکنه و ماهم روی حرفش حرف نمیزنیم :)
450 تا آموزش ناب و خفن انگلیسی که به مناسبت ایام جدایی اجتماعی رایگان شدن
متشکر از اینکه وقت گذاشتید و تا انتها خوندید، به اشتراک گذاریش با بقیه خوشحالم میکنه :)
محمد محمدعلیان - 9 فروردین 1399