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

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

  • v- نمایش لوگ تمام عملیاتی که curl انجام میده
  • compressed– درخواست اطلاعات فشرده شده به وسیله ارسال هدر Accept-Encoding
  • L- قبول کردن تمام ریدایرکت ها
  • k- پذیرفتن اتصالات غیر ایمن در پروتکل ssl
  • I- ارسال درخواست head
  • i- نمایش هدرهای دریافتی از سرور در خروجی
  • O- دانلود فایل و ذخیره آن به نام اسمی که سرور به ما میده
  • o- دانلود فایل و ذخیره آن به نام دلخواه
  • s- زمانی که از این سوییچ استفاده کنید در دانلود فایل درصد پیشرفت نمایش داده نخواهد شد
  • x- تنظیم کردن آدرس پروکسی
  • proxy-user, -U– تنظیم کردن نام کاربری و رمز عبور برای پروکسی اگر نیاز است
  • u- تنظیم کردن نام کاربری و رمز برای http basic auth و ftp
  • X- مشخص کردن متد http ای که باید استفاذه شود مثل GET, POST, PUT, DELETE
  •  F, –form- ارسال فایل در فرم http
  • d , –data- مشخص کردن اطلاعاتی که باید ارسال شود، برای اینکه محتویات یک فایل رو به عنوان بدنه اطلاعات ارسالی بفرستید باید آدرس فایل رو به همراه @ وارد کنید برای مثال اگه بخواید یک json بفرستید میتونید اون رو در فایل ذخیره کنید و با این روش محتویاتش رو ارسال کنید
  • data-urlencode– مشخص کردن اطلاعات ارسالی که باید urlencode هم شود
  • G, –get- اطلاعاتی که در سوییچهای d, –data, –data-urlencode- وارد شده رو به صورت query string به انتهای آدرس اضافه میکنه
  • H, –header- ارسال هدر
  • w- فرمت بندی اطلاعات دریافتی، برایم مثال اگه بخوایم زمان اتصال، زمان دانلود اطلاعات و … رو ببینیم باید یکی از متغیر های از پیش تعیین شده رو وارد کنیم. متغیر های مهم عبارت اند از:
    • http_code کد http دریافتی
    • remote_ip آی پی سرور
    • size_download اندازه کل اطلاعاتی که دانلود شده در بایت بدون در نظر گرفتن هدرهای پاسخ
    • size_header اندازه هدرهایی که دانلود شده در بایت
    • size_upload اندازه اطلاعاتی که ارسال شده در بایت بدون در نظر گرفتن هدرهای درخواست
    • size_request اندازه کل اطلاعات و هدرهای ارسالی در بایت
    • speed_download متوسط سرعت دانلود
    • speed_upload متوسط سرعت آپلود
    • time_connect مدت زمانی که طول کشیده، از ارسال درخواست تا زمانی که اتصال به سرور برقرار شده
    • time_pretransfer مدت زمانی که طول کشیده، از ارسال درخواست تا زمانی که اطلاعات قرار است ارسال شود
    • time_starttransfer مدت زمانی که طول کشیده، از ارسال درخواست تا زمانی که اولین بایت اطلاعات قرار است ارسال شود، این مقدار برابر است با time_pretransfer به علاوه زمانی که طول میکشه تا سرور درخواست رو پردازش کنه و خروجی رو آماده کنه
    • time_total مدت زمانی که طول کشیده، از ارسال درخواست تا زمانی که کل اطلاعات دریافت شده

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

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

ارسال درخواست GET با دو پارامتر name و phone

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

ارسال درخواست POST با دو پارامتر name و phone

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

اگه بخواید درخواست json بفرستید برای مثال  {"name":"pepsi"}  هم میتونید مستقیم ارسال کنید هم اینکه در یک فایل ذخیره کنید و با اپراتور  @ محتویات فایل رو بفرستید

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

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

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

 

 

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

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

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

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

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