با استفاده از ماژول socket در پایتون، یک کلاینت ساده HTTP بنویسید که به یک سرور وب متصل شود، درخواست GET با هدرهای دلخواه ارسال کند و هدرها و بدنهٔ پاسخ را چاپ کند.
13.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:48 0.0
برای حل این مسئله از socket.socket() استفاده کنید، به (host, 80) متصل شوید و یک رشته درخواست HTTP مثل "GET / HTTP/1.1\r\nHost: example.com\r\nUser-Agent: MyClient\r\nX-Custom: value\r\nConnection: close\r\n\r\n" را با sendall() ارسال کنید؛ سپس در حلقهای با recv(4096) دادهها را دریافت کرده و پس از پایان اتصال خروجی را decode کنید و با split('\r\n\r\n',1) هدرها و بدنه را جدا و چاپ کنید. نکات: حتما هدر Host و Connection: close را قرار دهید، برای جلوگیری از بلوکه شدن میتوانید timeout تعیین کنید و برای سادهسازی از پورت 80 و عدم پردازش chunked encoding استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
این توضیح یک کلاینت HTTP ساده با socket.socket و اتصال به پورت 80 را نشان میدهد که درخواست GET با هدرهای دلخواه را میفرستد و هدرها و بدنه پاسخ را چاپ میکند. برای پایداری بهتر، روی سوکت timeout تنظیم کنید تا در صورت قطع شبکه یا پاسخ طولانی گیر نکند. حتماً هدرهای Host و Connection: close را اضافه کنید تا از بروز مشکلات مربوط به نگهداشتن اتصال جلوگیری شود. برای جدا کردن هدرها از بدنه میتوانید از split('\r\n\r\n', 1) استفاده کنید و دادهها را پس از دریافت با decode به نمایش درآورید.
گزارش