تبدیل curl به Python
curl2code فوراً هر دستور curl را با استفاده از کتابخانه محبوب requests به کد تمیز Python تبدیل میکند. این تبدیل کاملاً در مرورگر شما و از طریق WebAssembly انجام میشود — دادههای شما هرگز دستگاهتان را ترک نمیکنند. اگر در فرانتاند با TypeScript کار میکنید، مبدل curl به TypeScript ما را بررسی کنید. برای JavaScript سمت سرور، curl به Node.js را ببینید. در ادامه مثالهای کاربردی شامل رایجترین سناریوهای HTTP را خواهید یافت.
نحوه کپی کردن curl از مرورگر
- 1
باز کردن DevTools
کلید F12 یا Ctrl+Shift+I را فشار دهید تا ابزارهای توسعهدهنده مرورگر باز شوند.
- 2
رفتن به تب Network
روی تب Network کلیک کنید و عملیاتی که باعث ارسال درخواست HTTP میشود را انجام دهید.
- 3
کپی به عنوان cURL
روی درخواست راستکلیک کنید ← Copy ← Copy as cURL. سپس آن را در بالا جایگذاری کنید.
سوالات متداول
Python Requests چیست؟
کتابخانه Python Requests محبوبترین کتابخانه کلاینت HTTP برای Python با بیش از ۵۰,۰۰۰ ستاره در GitHub است. این کتابخانه یک API ظریف و پایتونیک برای ارسال درخواستهای HTTP، مدیریت نشستها (sessions)، کوکیها و احراز هویت ارائه میدهد. این کتابخانه از پارس کردن JSON به صورت پیشفرض، استخر اتصالات (connection pooling) و رمزگشایی خودکار محتوا پشتیبانی میکند. آن را با pip install requests نصب کنید. این کتابخانه پیشفرض مورد استفاده در curl2code برای تبدیلهای Python است.
Requests در مقابل http.client — از کدام استفاده کنم؟
استفاده از Requests به دلیل API ساده، پارس خودکار JSON و پشتیبانی داخلی از نشستها برای اکثر موارد توصیه میشود. http.client بخشی از کتابخانه استاندارد Python است و نیاز به نصب ندارد، که آن را برای محیطهای حداقلی مناسب میکند. برای سادگی مشابه در زبانهای دیگر، مبدل curl به Ruby یا مبدل curl به Go ما را ببینید.
چگونه احراز هویت را در Python Requests مدیریت کنیم؟
یک هدر Authorization همراه با توکن خود برای Bearer auth ارسال کنید، یا از requests.auth.HTTPBasicAuth(user, pass) برای Basic auth استفاده کنید. curl2code به طور خودکار الگوهای احراز هویت از جمله -u user:pass و -H 'Authorization: Bearer ...' را تشخیص میدهد.
چگونه دادههای فرم چندبخشی (multipart) را با Python ارسال کنیم؟
از پارامتر files استفاده کنید: requests.post(url, files={ 'file': open('doc.pdf', 'rb') }). برای فیلدهای اضافی فرم، به طور همزمان از data استفاده کنید. curl2code فلگهای -F را به صورت خودکار مدیریت میکند.
چگونه خطاها و تلاشهای مجدد (retries) را مدیریت کنیم؟
از response.raise_for_status() برای ایجاد استثنا در وضعیتهای 4xx/5xx استفاده کنید. آن را در بلوک try/except برای گرفتن requests.exceptions.RequestException قرار دهید. برای تلاشهای مجدد، از urllib3.util.Retry با یک Session adapter استفاده کنید.
چگونه درخواستهای HTTP ناهمگام (async) در Python ارسال کنیم؟
کتابخانه requests همگام (synchronous) است. برای HTTP ناهمگام، از aiohttp یا httpx (که هر دو API همگام و ناهمگام را با رابط سازگار با requests ارائه میدهد) استفاده کنید. برای سناریوهای با همزمانی بالا، کلاینتهای ناهمگام توان عملیاتی به مراتب بهتری ارائه میدهند.
چگونه مهلت زمانی (timeouts) و استخر اتصالات را تنظیم کنیم؟
همیشه مهلت زمانی را تنظیم کنید: requests.get(url, timeout=(3.05, 27)). برای استخر اتصالات، از requests.Session() استفاده کنید که اتصالات TCP را مجدداً استفاده میکند. فلگهای --connect-timeout و --max-time در curl به این موارد نگاشت میشوند.
چگونه یک پروکسی را با Python Requests پیکربندی کنیم؟
یک دیکشنری proxies پاس دهید: { 'https': 'http://proxy:8080' }. برای SOCKS، کتابخانه requests[socks] را نصب کنید. همچنین از متغیرهای محیطی HTTP_PROXY / HTTPS_PROXY پیروی میکند. curl2code فلگهای -x و --proxy را به طور خودکار تبدیل میکند.
چگونه یک درخواست POST با بدنه JSON در Python ارسال کنیم؟
یک دستور curl POST مانند curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL را با استفاده از curl2code به Python تبدیل کنید. کد تولید شده از requests.post(url, json={'key': 'value'}) استفاده میکند. curl2code به طور خودکار فلگهای -d/--data با محتوای JSON را تشخیص داده و هدر Content-Type مناسب را در کد Requests تنظیم میکند.
چگونه احراز هویت با Bearer token را در Python اضافه کنیم؟
دستور curl -H "Authorization: Bearer YOUR_TOKEN" URL را به curl2code بدهید تا کد Requests را با هدر احراز هویت تولید کند: headers={'Authorization': 'Bearer YOUR_TOKEN'}. curl2code توکنهای Bearer را از هر دو فلگ -H "Authorization: Bearer ..." و --oauth2-bearer تشخیص میدهد. برای Basic auth، از -u user:pass استفاده کنید.
چگونه هدر Content-Type را در Python تنظیم کنیم؟
curl2code دستور curl -H "Content-Type: application/json" URL را به کد Requests با هدر مناسب تبدیل میکند: headers={'Content-Type': 'application/json'}. برای دادههای -d، دستور curl به طور پیشفرض از application/x-www-form-urlencoded استفاده میکند؛ برای آپلودهای فرم -F، از multipart/form-data استفاده میکند. curl2code هر کدام را به API صحیح Requests نگاشت میکند.
چگونه یک دستور curl را به کد Python تبدیل کنیم؟
دستور curl خود را در curl2code وارد کرده و Python را انتخاب کنید. این ابزار تمام فلگها — -X (متد)، -H (هدرها)، -d (دادهها)، -u (احراز هویت)، -F (فرم)، کوکیها و موارد دیگر — را تجزیه کرده و کد تمیز Python Requests تولید میکند. تبدیل به صورت محلی در مرورگر شما از طریق WebAssembly انجام میشود، بنابراین کلیدهای API و دادههای شما محرمانه باقی میمانند. همچنین میتوانید http.client را به عنوان یک کتابخانه جایگزین انتخاب کنید.