From 8e1ba3a47510b9af40e6a6b53ca325bd8027df15 Mon Sep 17 00:00:00 2001 From: Brian Martin Date: Tue, 5 Feb 2019 10:36:37 -0500 Subject: [PATCH] Fix for Android app Fix for Android app Android and iOS are sending requests to usersapi differently, this handles both gracefully --- bumper/confserver.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/bumper/confserver.py b/bumper/confserver.py index 454e3be..8eb078d 100644 --- a/bumper/confserver.py +++ b/bumper/confserver.py @@ -195,22 +195,29 @@ class ConfServer(): async def handle_usersapi(self, request): body = {} - - json_body = json.loads(await request.text()) - todo = json_body['todo'] + postbody = {} + if request.content_type == "application/x-www-form-urlencoded": + postbody = await request.post() + + else: + postbody = json.loads(await request.text()) + + logging.debug(postbody) + + todo = postbody['todo'] if todo == 'FindBest': - service = json_body['service'] + service = postbody['service'] if service == 'EcoMsgNew': body = {"result":"ok","ip":socket.gethostbyname(socket.gethostname()),"port":5223} elif service == 'EcoUpdate': body = {"result":"ok","ip":"47.88.66.164","port":8005} elif todo == 'loginByItToken': body = { - "resource": json_body["resource"], + "resource": postbody["resource"], "result": "ok", "todo": "result", - "token": json_body["token"], #RandomChar(32) - "userId": json_body["userId"] #RandomChar(16) + "token": postbody["token"], #RandomChar(32) + "userId": postbody["userId"] #RandomChar(16) } elif todo == 'GetDeviceList': active_bots = self.bumper_bots.get()