محمد محمدعلیان
محمد محمدعلیان
خواندن ۴ دقیقه·۵ سال پیش

نقطه آغاز curl

طبق نوشته خود وبسایت curl این ابزار توی محیط کامندلاین یا اسکریپت‌ها برای انتقال اطلاعات تحت پروتکل های مختلف(خیلی مختلف?) استفاده می‌شه. البته فقط محدود به محیط کامندلاین نمی‌شه بلکه توی ماشینا و کلی جاهای دیگه هم استفاده می‌شه!
ما توی این مقاله صرفا از پروتکل HTTP استفاده می‌کنیم ;)

اندکی بیشتر راجع به خود curl

طبق نوشته ویکی‌پدیا برای اولین بار توی سال 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

توزیع‌های مبنای rpm

sudo yum install curl

openSUSE

sudo zypper ins curl

freeBSD

doas pkg install curl

نحوه نصب در مک

sudo brew install curl

ممنون از هومان برای نحوه نصب در گنو/لینوکس و نحوه نصب در مک :)

برای درخواستها توی این مقاله از سرویس رایگان jsonplaceholder استفاده می‌کنیم که البته دیتاهاش واقعی نیستن :)

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

توی ساده ترین حالت لازمه که curl رو بنویسید و بعدش آدرسی که میخواید بهش request بزنید رو بدید.

curl http://jsonplaceholder.typicode.com/posts/1

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

مثل درخواست GET عمل می‌کنیم + افزودن آپشن data

curl --data &quottitle=curl basics&body=introduce curl in simple term!&userId=1&quot https://jsonplaceholder.typicode.com/posts

برای منظم‌تر کردن می‌تونید چندین بار از آپشن دیتا استفاده بکنید و خود curl زحمت به‌هم چسبوندنش رو می‌کشه
جاداره از curl بخاطر زحماتش تقدیر کنیم?

curl --data &quottitle=curl basics&quot --data &quotbody=introduce curl in simple term!&quot --data &quotuserId=1&quot https://jsonplaceholder.typicode.com/posts

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

curl -X PUT --data &quottitle=title changed!&quot http://jsonplaceholder.typicode.com/posts/1

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

curl -X PATCH --data &quotbody=basics of curl!&quot http://jsonplaceholder.typicode.com/posts/1

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

curl -X DELETE http://jsonplaceholder.typicode.com/posts/1

ارسال فایل

برای ارسال فایل از آپشن form استفاده می‌کنیم

curl --form &quotfileupload=@my-file.png&quot https://example.com/resource

گرفتن هدرهای پاسخ

اگر بخوایم فقط هدرها رو بگیریم می‌تونیم از head-- یا I- [حرف i بزرگ] استفاده کنیم

اگر response و هدر رو باهم بخوایم از i- استفاده می‌کنیم

ذخیره کردن نتیجه اجرای کامند توی فایل

برای اینکار کافیه از سوییچ o- به علاوه محل فایلتون استفاده کنید

curl http://jsonplaceholder.typicode.com/posts/1 -o first_post.json
curl --data &quottitle=curl basics&quot --data &quotbody=introduce curl in simple term!&quot --data &quotuserId=1&quot 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 روی درخواست ها

برای اینکار کافیه socks5-hostname-- رو مشخص بکنیم

curl ip-api.com/json --socks5-hostname 127.0.0.1:9150

نکته: این آدرس پراکسی برای tor هست

چطوری سلطان curl بشم؟

وبسایت curl این کتاب رو پیشنهاد می‌کنه و ماهم روی حرفش حرف نمی‌زنیم :)

جایزه

450 تا آموزش ناب و خفن انگلیسی که به مناسبت ایام جدایی اجتماعی رایگان شدن


متشکر از اینکه وقت گذاشتید و تا انتها خوندید، به اشتراک گذاریش با بقیه خوشحالم می‌کنه :)

محمد محمدعلیان - 9 فروردین 1399

برنامه نویسیابزارcurl
یه ممد 20 ساله که برنامه‌نویس بک-انده. لینکای من: https://redl.ink/Mohammadalian_1383
شاید از این پست‌ها خوشتان بیاید