یک سرور HTTP ساده با استفاده از BaseHTTPRequestHandler پیادهسازی کنید که درخواستهای GET را دریافت کند، هدرهای دریافتی را بهصورت JSON در بدنه پاسخ بازگرداند و یک هدر پاسخ دلخواه مانند "X-Server: MyServer" اضافه نماید.
3.0 بازدید آخرین ویرایش در 203 روز قبل ساعت 02:41 0.0
برای حل، یک کلاس از BaseHTTPRequestHandler ارثبری کنید و متد do_GET را بازنویسی کنید؛ با self.headers هدرهای ورودی را بخوانید و با json.dumps آنها را به رشتهٔ JSON تبدیل کنید. سپس با self.send_response(200)، self.send_header('Content-Type','application/json') و self.send_header('X-Server','MyServer') هدرهای پاسخ را تنظیم و با self.end_headers() و نوشتن بایتهای JSON به self.wfile پاسخ را ارسال کنید. از http.server.HTTPServer برای راهاندازی سرور استفاده کنید و برای تست از مرورگر یا curl بهره ببرید — هنگام تبدیل رشته به بایت از utf-8 مطمئن شوید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته: برای تبدیل هدرهای ورودی به JSON بهتر است آنها را به دیکشنری ساده تبدیل کنید (مثلاً dict(self.headers)) تا json.dumps قابل استفاده باشد. قبل از ارسال بدنه از utf-8 برای encoding استفاده کنید و به بایت تبدیل کنید. سپس از self.send_response(200)، self.send_header('Content-Type','application/json') و self.send_header('X-Server','MyServer') استفاده کنید و با self.end_headers()، بدنهٔ JSON را به self.wfile بنویسید. مطمئن باشید در تست با curl یا مرورگر، خروجی JSON و هدر X-Server ظاهر میشود و مناسب است.
گزارش