تبدیل curl به Perl
دستورات curl را با استفاده از LWP::UserAgent به کد Perl تبدیل کنید. curl2code کاملاً در مرورگر شما از طریق WebAssembly اجرا میشود — دادههای شما خصوصی میمانند. برای Python، مبدل curl به Python ما را امتحان کنید. برای Ruby، curl به Ruby را ببینید. در ادامه مثالهای آماده Perl آورده شده است.
نحوه کپی کردن curl از مرورگر
- 1
باز کردن DevTools
کلید F12 یا Ctrl+Shift+I را فشار دهید تا ابزارهای توسعهدهنده مرورگر باز شوند.
- 2
رفتن به تب Network
روی تب Network کلیک کنید و عملیاتی که باعث ارسال درخواست HTTP میشود را انجام دهید.
- 3
کپی به عنوان cURL
روی درخواست راستکلیک کنید ← Copy ← Copy as cURL. سپس آن را در بالا جایگذاری کنید.
سوالات متداول
Perl LWP چیست؟
LWP (کتابخانه WWW در Perl) کتابخانه استاندارد کلاینت HTTP برای Perl است. ماژول LWP::UserAgent یک کلاینت کامل با قابلیت مدیریت کوکی، ریدایرکت، پشتیبانی از پروکسی و SSL ارائه میدهد. با cpan LWP یا apt install libwww-perl نصب کنید. curl2code از LWP به عنوان پیشفرض برای تبدیلهای Perl استفاده میکند.
LWP در مقابل HTTP::Tiny در مقابل Mojo::UserAgent — از کدام استفاده کنیم؟
LWP پر از ویژگی و انتخاب سنتی است. HTTP::Tiny یک ماژول هسته است (بدون نیاز به نصب) — برای درخواستهای ساده عالی است. Mojo::UserAgent مدرن با پشتیبانی از async و WebSocket است. برای اسکریپتهای سریع، از HTTP::Tiny استفاده کنید. برای ویژگیهای کامل، از LWP استفاده کنید. برای زبانهای اسکریپتنویسی مشابه، curl به Python یا curl به Ruby را ببینید.
چگونه احراز هویت را در Perl مدیریت کنیم؟
با LWP: $ua->default_header('Authorization' => 'Bearer token'). برای احراز هویت Basic: $ua->credentials('host:port', 'realm', 'user', 'pass'). یا هدرها را برای هر درخواست روی شیء HTTP::Request تنظیم کنید. curl2code پرچمهای -u و -H 'Authorization' را به نحو Perl تبدیل میکند.
چگونه دادههای multipart form را در Perl ارسال کنیم؟
از HTTP::Request::Common استفاده کنید: POST($url, Content_Type => 'form-data', Content => [file => ['path/file.pdf']]). LWP مرزهای multipart را به طور خودکار مدیریت میکند. برای فیلدهای اضافی، جفتهای کلید-مقدار را به آرایه Content اضافه کنید. curl2code پرچمهای -F را به این فرمت تبدیل میکند.
چگونه خطاهای HTTP را در Perl مدیریت کنیم؟
بعد از هر درخواست $response->is_success را بررسی کنید. برای جزئیات خطا: $response->status_line کد وضعیت و پیام را برمیگرداند. LWP حتی در صورت بروز خطا یک شیء پاسخ برمیگرداند — $response->code را برای وضعیت HTTP بررسی کنید. از die یا warn برای گزارش خطا استفاده کنید.
چگونه JSON را در Perl پارس کنیم؟
از ماژول JSON استفاده کنید: my $data = decode_json($response->content). برای انکود کردن: my $json = encode_json($hashref). با cpan JSON نصب کنید. برای Perl 5.14+، JSON::PP (ماژول هسته، بدون نیاز به نصب) را در نظر بگیرید. برای ابزارهای متمرکز بر JSON بیشتر، curl به Go را ببینید.
چگونه تایماوتها را در Perl LWP تنظیم کنیم؟
روی UserAgent تنظیم کنید: my $ua = LWP::UserAgent->new(timeout => 30). این کار تایماوت کلی درخواست را به ثانیه تنظیم میکند. برای تایماوت اتصال به طور خاص، از گزینههای IO::Socket::SSL استفاده کنید. تلاش مجدد در LWP داخلی نیست — به صورت دستی پیادهسازی کنید یا از LWP::UserAgent::Determined استفاده کنید.
چگونه از یک پروکسی در Perl استفاده کنیم؟
روی UserAgent تنظیم کنید: $ua->proxy(['http', 'https'], 'http://proxy:8080'). یا از متغیرهای محیطی استفاده کنید: $ua->env_proxy متغیرهای HTTP_PROXY و HTTPS_PROXY را میخواند. برای استثناهای عدم استفاده از پروکسی: $ua->no_proxy('localhost', '.internal'). curl2code پرچمهای -x را به فراخوانیهای پروکسی LWP تبدیل میکند.
چگونه یک درخواست POST با بدنه JSON در Perl ارسال کنیم؟
یک دستور curl POST مانند curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL را با استفاده از curl2code به Perl تبدیل کنید. کد تولید شده از $ua->post($url, Content_Type => 'application/json', Content => encode_json($data)) استفاده میکند. curl2code به طور خودکار فلگهای -d/--data با محتوای JSON را تشخیص داده و هدر Content-Type مناسب را در کد LWP::UserAgent تنظیم میکند.
چگونه احراز هویت با Bearer token را در Perl اضافه کنیم؟
دستور curl -H "Authorization: Bearer YOUR_TOKEN" URL را به curl2code بدهید تا کد LWP::UserAgent را با هدر احراز هویت تولید کند: $req->header('Authorization' => 'Bearer YOUR_TOKEN'). curl2code توکنهای Bearer را از هر دو فلگ -H "Authorization: Bearer ..." و --oauth2-bearer تشخیص میدهد. برای Basic auth، از -u user:pass استفاده کنید.
چگونه هدر Content-Type را در Perl تنظیم کنیم؟
curl2code دستور curl -H "Content-Type: application/json" URL را به کد LWP::UserAgent با هدر مناسب تبدیل میکند: $req->header('Content-Type' => 'application/json'). برای دادههای -d، دستور curl به طور پیشفرض از application/x-www-form-urlencoded استفاده میکند؛ برای آپلودهای فرم -F، از multipart/form-data استفاده میکند. curl2code هر کدام را به API صحیح LWP::UserAgent نگاشت میکند.