def request_post()

in codes/lambda/api-testing-tester/src/http_request_tester.py [0:0]


    def request_post(self, type, endpoint, url, key, token, body):
        headers = {
                'content-type': 'application/json',
            }
        if key is not None:
            headers['x-api-key'] = key
        if token is not None:
            headers['Authentication'] = token

        payload = json.dumps(body)

        logger.info('request_post: request - endpoint - {}'.format(endpoint))
        before = time.time()
        conn = http.client.HTTPSConnection(endpoint)
        conn.request("POST", url, payload, headers)
        after = time.time()

        response = conn.getresponse()
        body_str = response.read().decode("utf-8")
        logger.info('request_post: response - status_code - {}'.format(response.status))

        if response.status is not 200:
            response_body = None
            self.put_metric(MetricType.StatusError, 1.0, self.project_name, self.project_stage, type)
        else:
            response_body = json.loads(body_str)
            logger.info('request_post: response - body - {}'.format(response_body))
            self.put_metric(MetricType.StatusSuccess, 1.0, self.project_name, self.project_stage, type)
        
        logger.info('request_post: response time - {}'.format(after - before))
        self.put_metric(MetricType.ResponseTime, (after * 1000 - before * 1000), self.project_name, self.project_stage, type)
        return response.status, response_body