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