狗头萝莉的抖音、微博账号被封禁,黑粉尝试访问她的QQ账号和密码
【192V-2.5G】【妹子】【高颜值】狗头萝莉-合集 大家好...
2023-11-29
适用于RPA2020.4以及以上版本,
调用方式及字段,请参考论坛手册:
暂未在论坛公开,请向当地厂商技术索取
如果想用机器人来调 API 接口,可参考以下代码,其它语言逻辑一样:
import jsonimport timeimport requestsfrom urllib import parseimport hmacimport base64from hashlib import sha256def rpa_rest_2020_4(host='',rest_type='',data_json=None,mode='',port=443,accesstoken=None,retry=2): ''' host:地址,str型,示例:'https://192.168.202.11' rest_type:str型,接口类型,示例:'/oapi/v1/job/create' data_json:字典型,发送的报文数据json格式 mode:接口请求方式(get、post、delete及put) port:int型,https端口 retry:int型,重试次数 返回值:get_field_json:字典型, ''' get_field_json={'code': 40, 'msg': 'fail,意外情况','result':None} #url参数转换 def json2Params(data_json): get_field_json={'code': 41, 'msg': 'fail,转换URL参数失败!','result':None} try: data_json=json.loads(data_json) url_str = '' nums = 0 max_nums = len(data_json) for key in data_json: nums += 1 if nums == max_nums: url_str += str(key) + '=' + str(data_json[key]) else: url_str += str(key) + '=' + str(data_json[key]) + '&' except Exception as e: print('参数转化失败:',e) url_str='' finally: return url_str if mode != 'get' and mode != 'put' and mode != 'post' and mode != 'delete': get_field_json={'code': 42, 'msg': 'fail,mode错误,只能为get、put、post或delete!','result':None} return get_field_json #获得签名sign sign = '' sign_yc = '' url = host if port != 443: url = url + ':' + str(port) url += rest_type timestamp = None #获取签名值sign: try: get_field_json={'code': 41, 'msg': 'fail,获取签名失败!','result':None} #获得毫秒级时间戳(时间出入不能大于10分钟) timestamp=str(int(round(time.time() * 1000))) #处理json数据不为str类型的情况 for key in data_json: data_json[key]=str(data_json[key]) #json排序 data_json=json.dumps(data_json,sort_keys=True) #构造源串sign_yc if mode == 'get': json_str=json2Params(data_json) sign_yc=json_str + '&token=' + accesstoken + '×tamp=' + timestamp url = url+'?'+json_str else: sign_yc=str(data_json) + '&token=' + accesstoken + '×tamp=' + timestamp print('源串:',sign_yc) print('URL:',url) #URL编码 url_bm = parse.quote(sign_yc, encoding="utf-8") #sha256加密密码 byte_key = bytes(accesstoken, encoding="utf-8") byte_url_bm = bytes(url_bm, encoding="utf-8") hn256 = hmac.new(byte_key, byte_url_bm, digestmod=sha256) hh256 = hn256.hexdigest() #Base64编码 bb64 = base64.b64encode(bytes(hh256, encoding="utf-8")) #获取sign sign = str(bb64, "utf-8") #替换rn sign=sign.replace('rn', '') print('签名值sign:',sign) except Exception as e: print(e) return get_field_json #开始尝试发送API print('开始尝试发送API') for count in range(retry): print('尝试第',count+1,'次API请求任务。') try: print('开始尝试:',mode) #post、delete、put if mode!='get': header_dict = {'Content-Type': 'application/json;charset=UTF-8','accesstoken':accesstoken,'timestamp':timestamp,'signature':sign} if mode=='post': if rest_type == '/oapi/v1/job/create': header_dict = {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8','accesstoken':accesstoken,'timestamp':timestamp,'signature':sign} json_str=json2Params(data_json) url = url+'?'+json_str res = requests.post(url, data=str(data_json), headers=header_dict,verify=False) else: json_str=json2Params(data_json) url = url+'?'+json_str header_dict = {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8','accesstoken':accesstoken,'timestamp':timestamp,'signature':sign} res = requests.post(url, data=str(data_json), headers=header_dict,verify=False) if mode=='put': res = requests.put(url, data=str(data_json), headers=header_dict,verify=False) if mode=='delete': res = requests.delete(url, data=str(data_json), headers=header_dict,verify=False) if mode=='get': header_dict = {'accesstoken':accesstoken,'timestamp':timestamp,'signature':sign} res = requests.get(url,headers=header_dict,verify=False) #获取返回值 res_text=res.text #转化成json get_field_json=json.loads(res_text) print('请求成功!') break except Exception as e: print('请求失败:',e) get_field_json={'code': 40, 'msg': 'fail,发送API失败!','result':None} return get_field_jsondef get_token(host='',port='',accessKey='',secretKey='',retry=2): ''' host:地址,str型,示例:'https://192.168.202.11' port:int型,https端口 accessKey:str型,服务平台应用AppKey secretKey:str型,服务平台应用AppSecret retry:int型,重试次数 ''' get_field_json={'code': 44, 'msg': 'fail,获取token失败','result':None} for i in range(retry): try: url = host if port != 443: url = url + ':' + str(port) json_str='accessKey='+accessKey+'&secretKey='+secretKey url = url+'/oapi/v1/token?'+json_str res = requests.get(url,verify=False) res_text=res.text #转化成json get_field_json=json.loads(res_text) print('获取token,第'+str(i+1)+'次,成功') break except Exception as e: print('获取token,第'+str(i+1)+'次,失败',e) time.sleep(1) return get_field_json def refresh_token(host='',port='',refleshtoken='',retry=2): ''' host:地址,str型,示例:'https://192.168.202.11' port:int型,https端口 refleshtoken:str型,刷新token retry:int型,重试次数 ''' get_field_json={'code': 44, 'msg': 'fail,刷新token失败','result':None} for i in range(retry): try: url = host if port != 443: url = url + ':' + str(port) json_str='refreshToken='+refleshtoken url = url+'/oapi/v1/token?'+json_str res = requests.get(url,verify=False) res_text=res.text #转化成json get_field_json=json.loads(res_text) print('刷新token,第'+str(i+1)+'次,成功') break except Exception as e: print('刷新token,第'+str(i+1)+'次,失败',e) time.sleep(1) return get_field_json按照第 4 章的逻辑自行写调用代码即可。
按照第 4 章添加一个全局函数,在需要调用的地方使用全局函数控件即可。
注:需要提前获取token后调用,如无第三方平台对接,获取的token可存在共享变量里,分配权限调用,参考下图:

以上内容就是为大家推荐的python访问数据库api接口的方法(python如何写api接口)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:python访问数据库api接口的方法(python如何写api接口)
本文地址:https://www.xiaoyin02.com/shcs/121753.html
相关文章
电脑怎么访问手机,手机屏幕怎么才能显示在电脑桌面上? 这两天发现了一个有意思的转换器,竟然可以把电脑显示器变成电视机!也就是把手机屏幕投影...
2023-04-19
手机上网怎么设置苹果,iPhone引导式访问怎么设置? 1、“引导式访问”这一功能默认是关闭的,我们需要在设置里打开才可以使用。首先,打开苹果手机...
2023-04-18
手机qq好友怎么删,QQ空间如何查看别人删除的访问痕迹? 您可以在访问好别人空间后,再打开自己的空间,点个人中心,在我看过谁中,点一下空间名字后面的...
2023-04-18
手机怎么打开网页,oppoa11手机怎么解除禁止访问网页? 软件权限的设置方法: 进入安全中心--权限隐私--先开启权限监控,然后进入应用权限管理--点击某...
2023-04-17
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)