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