نقطه آغاز 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توزیع‌های مبنای rpmsudo yum install curlopenSUSEsudo zypper ins curlfreeBSDdoas pkg install curlنحوه نصب در مکsudo brew install curlممنون از هومان برای نحوه نصب در گنو/لینوکس و نحوه نصب در مک :)برای درخواستها توی این مقاله از سرویس رایگان jsonplaceholder استفاده می‌کنیم که البته دیتاهاش واقعی نیستن :)ارسال درخواست GETتوی ساده ترین حالت لازمه که curl رو بنویسید و بعدش آدرسی که میخواید بهش request بزنید رو بدید.curl http://jsonplaceholder.typicode.com/posts/1ارسال درخواست POSTمثل درخواست GET عمل می‌کنیم + افزودن آپشن datacurl --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ارسال درخواست PUTcurl -X PUT --data &quottitle=title changed!&quot http://jsonplaceholder.typicode.com/posts/1ارسال درخواست PATCHcurl -X PATCH --data &quotbody=basics of curl!&quot http://jsonplaceholder.typicode.com/posts/1ارسال درخواست DELETEcurl -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.jsoncurl --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.jsoncurl 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 1KB = بایتK = کیلوبایتM = مگابایتG = گیگابایتتنظیم پراکسی socks5 روی درخواست هابرای اینکار کافیه socks5-hostname-- رو مشخص بکنیمcurl ip-api.com/json --socks5-hostname 127.0.0.1:9150نکته: این آدرس پراکسی برای tor هستچطوری سلطان curl بشم؟وبسایت curl این کتاب رو پیشنهاد می‌کنه و ماهم روی حرفش حرف نمی‌زنیم :)جایزه450 تا آموزش ناب و خفن انگلیسی که به مناسبت ایام جدایی اجتماعی رایگان شدنمتشکر از اینکه وقت گذاشتید و تا انتها خوندید، به اشتراک گذاریش با بقیه خوشحالم می‌کنه :)محمد محمدعلیان - 9 فروردین 1399