diff --git a/TencentYoutuyun/youtu.py b/TencentYoutuyun/youtu.py index 613d84a..253d4b0 100644 --- a/TencentYoutuyun/youtu.py +++ b/TencentYoutuyun/youtu.py @@ -40,6 +40,7 @@ def __init__(self, appid, secret_id, secret_key, userid='0', end_point=conf.API_ self._userid = userid self._end_point = end_point conf.set_app_info(appid, secret_id, secret_key, userid, end_point) + self.requests_session = requests.Session() def get_headers(self, req_type): @@ -98,9 +99,10 @@ def FaceCompare(self, image_pathA, image_pathB, data_type = 0): data["urlA"] = image_pathA data["urlB"] = image_pathB - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':self.IMAGE_NETWORK_ERROR, 'errormsg':'', 'session_id':'', 'similarity':0} ret = r.json() @@ -135,9 +137,10 @@ def FaceVerify(self, person_id, image_path, data_type = 0): else : data["url"] = image_path - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "confidence":0, "ismatch":0, "session_id":''} ret = r.json() @@ -174,9 +177,10 @@ def FaceIdentify(self, group_id, image_path, data_type = 0): else : data["group_id"] = group_id - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "session_id":'', "candidates":[{}]} ret = r.json() @@ -209,9 +213,10 @@ def DetectFace(self, image_path, mode = 0, data_type = 0): else : data["url"] = image_path - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "session_id":'', "image_id":'', "image_height":0, "image_width":0, "face":[{}]} ret = r.json() @@ -257,9 +262,10 @@ def NewPerson(self, person_id, image_path, group_ids, person_name= '', tag='', d else: data["url"] = image_path - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "person_id":'', "suc_group":'', "suc_face":0, "session_id":0, "face_id":'', "group_ids":''} @@ -283,9 +289,10 @@ def DelPerson(self, person_id) : "person_id" : person_id } - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "deleted":0, "session_id":''} @@ -328,9 +335,10 @@ def AddFace(self, person_id, images, tag='', data_type = 0): else : data["urls"] = images - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "face_ids":[], "session_id":'', "added": 0, "ret_codes":[]} @@ -361,9 +369,10 @@ def DelFace(self, person_id, face_ids): "face_ids":face_ids } - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "session_id":'', "deleted ": 0} @@ -390,9 +399,10 @@ def SetInfo(self, person_id, person_name='', tag=''): "tag":tag } - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "person_id":'', "session_id ": ''} @@ -416,9 +426,10 @@ def GetInfo(self, person_id): "person_id": person_id } - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "person_id":'', "person_name ": '', "face_ids":[], "tag":'', "secret_id":''} ret = r.json() @@ -438,9 +449,10 @@ def GetGroupIds(self): "app_id": self._appid } - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "group_ids":[]} @@ -464,9 +476,10 @@ def GetPersonIds(self, group_id) : "group_id": group_id } - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "person_ids":[]} @@ -490,9 +503,10 @@ def GetFaceIds(self, person_id): "person_id": person_id } - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "face_ids":[]} @@ -516,9 +530,10 @@ def GetFaceInfo(self, face_id): "face_id": face_id } - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "face_info":[]} @@ -551,9 +566,10 @@ def FaceShape(self, image_path, mode = 0, data_type = 0): else: data["url"] = image_path - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':'', "face_shape":[{}], "image_height":0, "image_width":0, "session_id":''} @@ -586,9 +602,10 @@ def fuzzydetect(self, image_path, data_type = 0, seq = ''): else: data["url"] = image_path - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':''} @@ -621,9 +638,10 @@ def fooddetect(self, image_path, data_type = 0, seq = ''): else: data["url"] = image_path - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':''} @@ -632,8 +650,6 @@ def fooddetect(self, image_path, data_type = 0, seq = ''): return {'httpcode':0, 'errorcode':self.IMAGE_NETWORK_ERROR, 'errormsg':str(e)} return ret - - def imagetag(self, image_path, data_type = 0, seq = ''): @@ -658,9 +674,10 @@ def imagetag(self, image_path, data_type = 0, seq = ''): else: data["url"] = image_path - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':''} @@ -693,9 +710,10 @@ def imageporn(self, image_path, data_type = 0, seq = ''): else: data["url"] = image_path - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':''} @@ -704,7 +722,7 @@ def imageporn(self, image_path, data_type = 0, seq = ''): return {'httpcode':0, 'errorcode':self.IMAGE_NETWORK_ERROR, 'errormsg':str(e)} return ret - + def idcardocr(self, image_path, data_type = 0, card_type = 1 ,seq = ''): req_type='idcardocr' @@ -728,9 +746,11 @@ def idcardocr(self, image_path, data_type = 0, card_type = 1 ,seq = ''): data["image"] = base64.b64encode(open(filepath, 'rb').read()).rstrip().decode('utf-8') else: data["url"] = image_path - r = {} + try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':''} @@ -763,9 +783,10 @@ def namecardocr(self, image_path, data_type = 0, retimage= 1, seq = ''): else: data["url"] = image_path - r = {} try: - r = requests.post(url, headers=headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode':r.status_code, 'errorcode':'', 'errormsg':''} @@ -786,9 +807,10 @@ def livegetfour(self, seq = ''): 'seq' : seq } - r = {} try: - r = requests.post(url, headers = headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode' : r.status_code, 'errorcode' : '', 'errormsg' : '', 'validate_data' : ''} ret = r.json() @@ -834,9 +856,10 @@ def livedetectfour(self, validate_data, video_path, seq = '', card_path = '', c data['validate_data'] = validate_data data['compare_flag'] = compare_flag - r = {} try: - r = requests.post(url, headers = headers, data = json.dumps(data)) + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) if r.status_code != 200: return {'httpcode' : r.status_code, 'errorcode' : '', 'errormsg' : '', 'live_status' : '', 'live_msg' : '', 'compare_status' : '', 'compare_msg' : '', 'sim' : 0, 'photo' : ''} ret = r.json() @@ -875,12 +898,13 @@ def idcardlivedetectfour(self, idcard_number, idcard_name, validate_data, video_ data['idcard_name'] = idcard_name data['validate_data'] = validate_data - r = {} try: - r = requests.post(url, headers = headers, data = json.dumps(data)) - if r.status_code != 200 : + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) + if r.status_code != 200 : return {'httpcode' : r.status_code, 'errorcode' : '', 'errormsg' : '', 'live_status' : '', 'live_msg' : '', 'compare_status' : '', 'compare_msg' : '', 'sim' : 0, 'video_photo' : ''} - ret = r.json() + ret = r.json() except Exception as e: return {'httpcode':0, 'errorcode':self.IMAGE_NETWORK_ERROR, 'errormsg':str(e), 'live_status' : '', 'live_msg' : '', 'compare_status' : '', 'compare_msg' : '', 'sim' : 0, 'video_photo' : ''} @@ -914,17 +938,14 @@ def idcardfacecompare(self, idcard_number, idcard_name, image_path, data_type = data['idcard_number'] = idcard_number data['idcard_name'] = idcard_name - r = {} try: - r = requests.post(url, headers = headers, data = json.dumps(data)) - if r.status_code != 200: + req = requests.Request('POST', url, data=json.dumps(data), headers=headers) + prepped = self.requests_session.prepare_request(req) + r = self.requests_session.send(prepped) + if r.status_code != 200: return {'httpcode' : r.status_code, 'errorcode' : '', 'errormsg' : '', 'similarity' : '', 'session_id' : session_id} - ret = r.json() + ret = r.json() except Exception as e: return {'httpcode':0, 'errorcode':self.IMAGE_NETWORK_ERROR, 'errormsg':str(e), 'similarity' : '', 'session_id' : session_id} return ret - - - -