
import http.server
import socketserver
import urllib.request
import urllib.error

# URL, куда будет отправлен текст запроса
FORWARD_URL = "http://147.45.111.213:8089"

class RequestHandler(http.server.SimpleHTTPRequestHandler):
    def do_POST(self):
        # Читаем тело запроса
        content_length = int(self.headers['Content-Length'])
        post_data = self.rfile.read(content_length)

        # Сохраняем текст запроса (здесь просто выводим в консоль)
        print(f"Received request: {post_data.decode('utf-8')}")

        # Отправляем текст запроса на указанный URL
        try:
            req = urllib.request.Request(FORWARD_URL, data=post_data, headers={'Content-Type': 'text/plain'})
            with urllib.request.urlopen(req):
                pass
        except urllib.error.URLError as e:
            self.send_response(500)
            self.end_headers()
            self.wfile.write(b"Unable to forward request")
            print(f"Error forwarding request: {e}")
            return

        # Отвечаем клиенту
        self.send_response(200)
        self.end_headers()
        self.wfile.write(b"Request received and forwarded")

def run_server():
    PORT = 8080
    with socketserver.TCPServer(("", PORT), RequestHandler) as httpd:
        print(f"Starting server on port {PORT}")
        httpd.serve_forever()

if __name__ == "__main__":
    run_server()
