تبدیل curl به Wget
curl2code دستورات curl را به سینتکس Wget تبدیل میکند. این تبدیل برای حفظ حریم خصوصی کامل، در مرورگر شما از طریق WebAssembly انجام میشود. برای HTTPie، مبدل curl به HTTPie ما را بررسی کنید. برای HTTP خام، curl به HTTP را ببینید. در ادامه مثالهای کاربردی Wget آورده شده است.
نحوه کپی کردن curl از مرورگر
- 1
باز کردن DevTools
کلید F12 یا Ctrl+Shift+I را فشار دهید تا ابزارهای توسعهدهنده مرورگر باز شوند.
- 2
رفتن به تب Network
روی تب Network کلیک کنید و عملیاتی که باعث ارسال درخواست HTTP میشود را انجام دهید.
- 3
کپی به عنوان cURL
روی درخواست راستکلیک کنید ← Copy ← Copy as cURL. سپس آن را در بالا جایگذاری کنید.
سوالات متداول
Wget چیست؟
ابزار Wget یک ابزار خط فرمان غیر تعاملی برای دانلود فایلها از وب است. این ابزار از HTTP، HTTPS و FTP پشتیبانی میکند و دارای ویژگیهایی برای دانلود بازگشتی (recursive)، آینهسازی وبسایتها و ادامه انتقالهای قطع شده است. روی اکثر سیستمهای لینوکس/macOS از پیش نصب شده است. curl2code دستورات curl را به سینتکس معادل Wget تبدیل میکند.
Wget در مقابل curl — چه زمانی از کدام استفاده کنیم؟
Wget در دانلود عالی است: آینهسازی بازگشتی سایت، پشتیبانی از ادامه دانلود و انتقال در پسزمینه. curl همهکارهتر است: از پروتکلهای بیشتری (بیش از 25 مورد) پشتیبانی میکند، قابلیتهای درخواست API بهتری دارد و برای اسکریپتنویسی مناسبتر است. برای دانلود/آینهسازی از Wget و برای کارهای API از curl استفاده کنید. همچنین curl به HTTPie را برای یک جایگزین مدرن ببینید.
Wget چگونه احراز هویت را مدیریت میکند؟
برای احراز هویت Basic: wget --user=user --password=pass url. برای توکنهای Bearer، از --header='Authorization: Bearer token' استفاده کنید. Wget همچنین از فایل .netrc برای ذخیره اعتبارنامهها پشتیبانی میکند: machine host login user password pass. از --ask-password برای ورود تعاملی رمز عبور استفاده کنید.
چگونه دادههای POST را با Wget ارسال کنیم؟
از wget --post-data='key=value&key2=value2' url برای دادههای فرم یا wget --post-file=data.json url برای محتوای فایل استفاده کنید. Wget در مقایسه با curl پشتیبانی محدودی از multipart دارد — برای آپلودهای پیچیده، curl توصیه میشود. curl2code فلگهای -d را به --post-data در Wget تبدیل میکند.
چگونه خطاها را با Wget مدیریت کنیم؟
کدهای خروج Wget را بررسی کنید: 0 (موفقیت)، 1 (خطای عمومی)، 4 (شکست شبکه)، 8 (خطای سرور). از --tries=3 برای تلاش مجدد خودکار و --waitretry=5 برای وقفه بین تلاشها استفاده کنید. Wget به طور پیشفرض خطاها را در stderr لاگ میکند. از -o logfile برای لاگبرداری دقیق استفاده کنید.
چگونه از Wget برای دانلودهای بازگشتی استفاده کنیم؟
از wget -r -l 3 url برای دانلود بازگشتی تا عمق 3 مرحله استفاده کنید. -np (no parent) را اضافه کنید تا در همان دایرکتوری بمانید. -k لینکها را برای مشاهده محلی تبدیل میکند، -p تمام داراییهای صفحه را دانلود میکند. برای آینهسازی سایت: wget --mirror -w 2 url. این مزیت اصلی Wget نسبت به curl است.
چگونه تایماوتها و تلاشهای مجدد را در Wget تنظیم کنیم؟
تایماوت اتصال: --connect-timeout=10. تایماوت خواندن: --read-timeout=30. تایماوت DNS: --dns-timeout=5. تلاشهای مجدد: --tries=3 (پیشفرض 20 است). وقفه بین تلاشها: --waitretry=5. Wget منطق تلاش مجدد قویتری نسبت به curl با قابلیت عقبنشینی اکسپوننشیال داخلی دارد.
چگونه از پروکسی با Wget استفاده کنیم؟
از طریق محیط تنظیم کنید: export http_proxy=http://proxy:8080. یا در ~/.wgetrc: http_proxy = http://proxy:8080. خط فرمان: wget -e use_proxy=yes -e http_proxy=proxy:8080 url. برای استثناهای no-proxy: no_proxy = localhost,.internal. curl2code فلگهای -x را به پیکربندی پروکسی Wget تبدیل میکند.
چگونه یک درخواست POST با بدنه JSON را در Wget نمایش دهیم؟
از -X POST -d '{"key":"value"}' -H "Content-Type: application/json" در دستور curl استفاده کنید و curl2code آن را به فرمت Wget تبدیل میکند: wget --post-data='{'key':'value'}' --header='Content-Type: application/json' url. بدنه JSON و هدر Content-Type در خروجی حفظ میشوند. curl2code هم JSON داخلی و هم ارجاعات @file.json را مدیریت میکند.
چگونه احراز هویت با Bearer token را در Wget بگنجانیم؟
وقتی دستور curl -H "Authorization: Bearer YOUR_TOKEN" URL را با curl2code تبدیل میکنید، Bearer token در خروجی Wget حفظ میشود: wget --header='Authorization: Bearer YOUR_TOKEN' url. هر دو فلگ -H "Authorization: Bearer ..." و توکن OAuth به طور خودکار تشخیص داده میشوند.
Content-Type در فرمت Wget چگونه نمایش داده میشود؟
هنگام تبدیل curl -H "Content-Type: application/json" URL، curl2code هدر Content-Type را در Wget به این صورت خروجی میدهد: wget --header='Content-Type: application/json' url. انواع رایج شامل application/json، application/x-www-form-urlencoded و multipart/form-data هستند. curl2code هدر Content-Type دقیق را از دستور curl اصلی حفظ میکند.