0

A webserver I coded in Python in Replit is fine when I access the website, but when I try to POST to the site, it errors and returns <Response [502]>.

webserver.py

from translate import Translator
from json import loads

class MyHandler(BaseHTTPRequestHandler):

  def do_GET(self):
    try:
      with open('templates/index.html', 'r') as f:
        content = f.read()
      self.send_response(200)
      self.send_header('Content-type', 'text/html')
      self.end_headers()
      self.wfile.write(bytes(content, 'utf8'))
    except:
      self.send_response(404)
      self.send_header('Content-type', 'text/html')
      self.end_headers()
      self.wfile.write(b'404: File not found')

  def do_POST(self):
    content_length = int(self.headers['Content-Length'])
    post_data = self.rfile.read(content_length)
    print(post_data)
    data = loads(post_data)
    print(data)
    translator = Translator(to_lang=data["to_lang"])
    translation = translator.translate(data["text"])
    print(translation)
    return translation
    self.wfile.write(bytes(translation, "utf-8"))


httpd = HTTPServer(('', 8000), MyHandler)
httpd.serve_forever()

post.py


a = requests.post(url="https://translator-webserver.akrix.repl.co", json={"source_lang":"EN", "text":"Hello world", "to_lang":"FR"})

print(a)

I added the return before the self.wfile.write(), expected it to work. It didn't. I switched the return to after the self.wfile.write(), and nothing changed.

How could I fix this, and what did I do wrong?

Akrix
  • 23
  • 5

0 Answers0