یک اسکریپت پایتون بنویسید که با استفاده از ssl.CERT_REQUIRED یک درخواست HTTPS(GET) به یک URL مشخص ارسال کند و وضعیت (status code) و هدرهای پاسخ را چاپ نماید.

12.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 01:00

0.0

برای حل این مسئله از ماژول‌های استاندارد urllib.request و ssl استفاده کنید: یک ssl.SSLContext بسازید (مثلاً ssl.create_default_context()) و مقدار verify_mode آن را به ssl.CERT_REQUIRED تنظیم کنید تا اعتبارسنجی گواهی‌سرور اجباری شود، سپس با urllib.request.Request هدرهای دلخواه (مانند User-Agent) را اضافه کرده و با urllib.request.urlopen یا یک HTTPSHandler که context به آن داده شده، درخواست را ارسال نمایید؛ در نهایت status (یا getcode()) و response.getheaders() را چاپ کنید. نکات: در صورت استفاده از گواهی خودامضاء اتصال شکست می‌خورد، می‌توانید timeout تعیین کنید و برای تست از یک URL با گواهی معتبر استفاده کنید.

توسط پژوهشگر در 198 روز قبل ساعت 01:00
دسته بندی ها: Python Python for beginner
arash در 198 روز قبل ساعت 01:00

برای اجباری‌کردن اعتبارسنجی، از ssl.create_default_context() استفاده کنید و verify_mode را به ssl.CERT_REQUIRED و check_hostname را روی True نگه دارید تا نام میزبان و زنجیرهٔ گواهی بررسی شود. اگر سرور گواهی خودامضاء دارد اتصال با شکست مواجه می‌شود؛ در این حالت باید cafile یا capath مناسب را به کانتکست بدهید یا برای تست از یک URL با گواهی معتبر استفاده کنید. هنگام ارسال درخواست با urllib.request.urlopen کانتکست را به HTTPSHandler پاس دهید و حتماً timeout تعیین کنید تا درخواست‌ها در زمان معقول خاتمه یابند. برای چاپ نتیجه از response.getcode() برای وضعیت و response.getheaders() برای هدرها استفاده کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری