پرکاربردترین دستورات curl در یک صفحه

سوییچ های مهم curl

  • v- نمایش لوگ تمام عملیاتی که curl انجام میده
  • compressed– درخواست اطلاعات فشرده شده به وسیله ارسال هدر  Accept-Encoding: deflate, gzip
  • L- قبول کردن تمام ریدایرکت ها
  • insecure, -k– پذیرفتن اتصالات غیر ایمن پروتکل ssl
    • زمانی که خطای  curl: (60) Peer's Certificate issuer is not recognized  رو میگیرید باید این سوییچ رو اضافه کنید.
  • I- ارسال درخواست HEAD
  • i- نمایش هدرهای دریافتی از سرور در خروجی
  • O- ذخیره کردن خروجی عملیات یا در حالت کلی دانلود فایل یا صفحه، به نامی که سرور به ما میده
  • o- دانلود فایل و ذخیره آن به نام دلخواه
  • s- زمانی که از این سوییچ استفاده کنید درصد دانلود فایل درصد پیشرفت نمایش داده نخواهد شد
  • x- تنظیم کردن آدرس پروکسی
  • proxy-user, -U– تنظیم کردن نام کاربری و رمز عبور برای پروکسی اگر نیاز است
  • u- تنظیم کردن نام کاربری و رمز زمانی که صفحه مورد نظر از HTTP Basic Authentication استفاده میکنه و یا قصد دارید اتصال FTP برقرار کنید.
  • cookie, -b– مشخص کردن کوکی برای ارسال
  • cookie-jar, -c– مشخص کردن فایل برای ذخیره کوکیهای دریافت شده
  • dump-header, -D–  مشخص کردن فایل برای ذخیره هدرهای پاسخ
  • 0- ,http1.0– استفاده از پروتکل HTTP 1.0
  • http1.1– استفاده از پروتکل HTTP 1.1
  • http2– استفاده از پروتکل HTTP 2
  • max-time, -m– حداکثر زمانی که کل عملیات میتواند طول بکشد (به ثانیه)
  • form, -F– مشخص کردن اطلاعاتی که باید به وسیله متد POST ارسال شود.
    • در این حالت هدر  Content-Type: multipart/form-data  هم ارسال خواهد شد.
  • data , -d– مشخص کردن اطلاعی که باید به وسیله متد POST ارسال شود.
    • در این حالت هدر Content-Type: application/x-www-form-urlencoded هم ارسال خواهد شد.
  •  data-urlencode– مانند سوییچ d- هست با این تفاوت که اطلاعات ارسالی urlencode هم می شوند.
  • get, -G– اطلاعاتی که در سوییچهای d, –data, –data-urlencode- وارد شده، به صورت query string به انتهای آدرس اضافه میکنه
  • header, -H- ارسال هدر
  • w- فرمت بندی اطلاعات دریافتی، برایم مثال اگه بخوایم زمان اتصال، زمان دانلود اطلاعات و … رو ببینیم باید یکی از متغیر های از پیش تعیین شده رو وارد کنیم. متغیر های مهم عبارت اند از:
    • http_code کد http دریافتی
    • remote_ip آی پی سرور
    • size_upload اندازه اطلاعاتی که ارسال شده در بایت بدون در نظر گرفتن هدرهای درخواست
    • size_request اندازه کل اطلاعات و هدرهای ارسالی در بایت
    • size_download اندازه کل اطلاعاتی که دانلود شده در بایت بدون در نظر گرفتن هدرهای پاسخ
    • size_header اندازه هدرهایی که دانلود شده در بایت
    • speed_download متوسط سرعت دانلود
    • speed_upload متوسط سرعت آپلود
    • time_connect مدت زمانی که طول کشیده، از ارسال درخواست تا زمانی که اتصال به سرور برقرار شده
    • time_pretransfer مدت زمانی که طول کشیده، از ارسال درخواست تا زمانی که اطلاعات قرار است ارسال شود
    • time_starttransfer مدت زمانی که طول کشیده، از ارسال درخواست تا زمانی که اولین بایت اطلاعات قرار است ارسال شود، این مقدار برابر است با time_pretransfer به علاوه زمانی که طول میکشه تا سرور درخواست رو پردازش کنه و خروجی رو آماده کنه
    • time_total مدت زمانی که طول کشیده، از ارسال درخواست تا زمانی که کل اطلاعات دریافت شده
  • X- مشخص کردن متد HTTP ای که باید استفاده شود مثل GET, POST, PUT, DELETE یا … توجه کنید که این سوییچ آخرین روش برای مشخص کردن متد درخواست هست چون برای مثال اگه سوییچهای data-urlencode , –data ,-d– یا F- تنظیم شده باشه متد پیش فرض POST خواهد بود یا اگه سوییچ I- تنظیم شده باشه متد پیش فرض HEAD خواهد بود و اگه هیچکدوم از دو سوییچ قبلی تنظیم نشده باشه متد پیش فرض GET خواهد بود در واقع اگه متد درخواستتون غیر از POST ,GET یا HEAD باشه باید از این سوییچ استفاده کنید.

وقتی یکی از سوییچهای data-urlencode , –data ,-d– یا F- رو استفاده میکنید متد پیش فرض برای ارسال این اطلاعات POST خواهد بود مگه اینکه با سوییچ X- یه مقدار دیگه مثل PUT یا DELETE بزارید.

در سوییچهای data-urlencode , –data ,-d– یا F- برای اینکه محتویات یک فایل رو به عنوان بدنه اطلاعات ارسالی بفرستید باید آدرس فایل رو به همراه @ وارد کنید.

مثال دستورات بالا

  • درخواست گرفتن صفحه ای که نیازمند HTTP Basic Authentication هست

  • دانلود فایل

  • ارسال درخواست GET با دو متغیر name و phone

توجه کنید که چون اطلاعات به انتهای آدرس اضافه میشن حتما باید urlencode بشن که این کار رو با سوییچ data-urlencode– انجام میدیم

  • ارسال درخواست POST با دو متغیر name و phone

اگه اطلاعات ارسالی حاوی کاراکترهای خاص مثل فاصله هست اونها رو باید با سوییچ data-urlencode– به صورت urlencode بفرستید

ارسال JSON

  • آپلود فایل در یک فرم HTTP

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

  • ارسال کوکی و ذخیره کوکی های دریافت شده در فایل

  • فهمیدن زمان کل درخواست و زمان رسیدن اولین بایت

  • تنظیم کردن پروکسی

با تنظیم کردن سوییچ o- میتونید درصد پیشرفت و میزان ترافیک مصرفی و کلن اطلاعات دقیق درخواستتون رو ببینید که این درخواست میتونه ارسال اطلاعات POST باشه یا آپلود فایل یا هر چیز دیگه ای

 

اینجا هم راهنمای کامل curl رو میتونید مطالعه کنید

جستجو در کل مطالب سایت

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *