0

I am new to python. In HTTP server, I am getting "Errno Extra data" while writing data. The code is below

class handler(BaseHTTPRequestHandler):
    def do_GET(self):
        global data, payload0
        if self.path.endswith("/get_timeseries_data"):
            username = "abcd"
            password = "test123"
            server_token = base64.b64encode(bytes(f'{username}:{password}', 'utf-8')).decode('utf-8')
            client_token = self.headers['Authorization'].strip('Basic ')
            self.send_response(200)
            self.send_header('Content-type', 'text/html')
            self.end_headers()
            try:
                if server_token == client_token:
                    param = self.headers.items()
                    length = int(self.headers.get('Content-length', 0))
                    if length > 0:
                        data = self.rfile.read(length).decode()
                        # msg = parse_qs(data)['data']
                        msg = ['temp', 'temp1']
                        for x in msg:
                            time.sleep(5)
                            time1 = datetime.now().isoformat(" ")
                            payload = {"ts": time1, "telemetry": {"values": {x: 100}}}
                            self.wfile.write(json.dumps(payload).encode("utf8"))

The data written fine when the msg = ['temp'] but getting "[Errno Extra data] {"ts": "2022-12-10 01:43:36.788130", "telemetry": {"values": {"temp": 100}}}{"ts": "2022-12-10 01:43:39.791309", "telemetry": {"values": {"temp1": 100}}}: 76" when it is msg = ['temp', 'temp1'] Also I am not sure how the ": 76" is getting added at the end.

It would be great if you can share why i am getting error when passed more than one value for msg = ['temp', 'temp1']. Any input will help. Thanks

Unfold
  • 1

0 Answers0