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?