آموزش Real Python به استفاده از HTTPX2 برای ارسال درخواستهای HTTP در Python میپردازد. HTTPX2 یک fork از HTTPX است که Pydantic در سال ۲۰۲۶ نگهداری آن را بر عهده گرفته است. این کتابخانه API مشابه Requests را با پشتیبانی از درخواستهای async، timeout پیشفرض و HTTP/2 همراه میکند.
HTTPX و HTTPX2 دو package جدا هستند، نه دو نام برای یک پروژه. نام نصب و import آنها متفاوت است و میتوانند بدون تداخل در یک محیط قرار بگیرند. طبق متن، HTTPX2 همان API عمومی HTTPX را حفظ کرده و بیشتر کدها بدون تغییر منتقل میشوند. بااینحال، نام ابزار command-line و package زیربنایی httpcore تغییر کرده و پشتیبانی از Python 3.9 کنار گذاشته شده است.
تغییر دیگر به تأیید TLS مربوط است: HTTPX2 بهجای فهرست certificate همراه کتابخانه، از trust store سیستمعامل استفاده میکند. در محیط شرکتی که Proxy ترافیک TLS را بررسی میکند، اگر root certificate شرکت در سیستمعامل نصب شده باشد، HTTPX2 بدون تنظیمات اضافه به آن اعتماد میکند.
آموزش با یک درخواست GET از طریق httpx2.get و خواندن status_code و خروجی json() شروع میشود. سپس مسیر استفاده از Client قابل استفادهٔ مجدد را معرفی میکند. این Client با connection pooling، اتصالها و تنظیمات را میان درخواستها به اشتراک میگذارد، بهجای آنکه برای هر درخواست اتصال تازهای باز کند.
در معرفی سرفصلها، AsyncClient برای ارسال درخواستهای async با asyncio مطرح شده است. همچنین timeout با تنظیمات جزئی و ساختار مشخص exceptionها برای قابل پیشبینی شدن خطاها، streaming برای پردازش پاسخهای بزرگ بدون بارگذاری کامل آنها در حافظه، و فعالسازی HTTP/2 با یک dependency اضافه و یک argument ذکر شدهاند.
برای دنبال کردن آموزش، Python 3.10 یا جدیدتر و آشنایی با درخواستهای پایه در Requests، dictionary، دستور with و exception لازم است؛ تجربهٔ قبلی asyncio لازم نیست. متن پیشنهاد میکند ابتدا virtual environment ساخته و فعال شود تا packageهای نصبشده از بقیهٔ سیستم جدا بمانند.




