#编写流程
#1：接收传入GUID参数
#2：连接基础数据库【CXT.RPA.db】
#3：根据参数GUID查询【ListenUrlRunLog】表中的【请求地址】及【数据请求头】
#4：使用urllib.parse 模块获取【请求头】及【请求结果】并组装成自己需要的【业务数据】
#5：调用接口提交【业务数据】
from time import sleep
import sqlite3
import json
import os
import re
from sys import argv
from urllib import parse

#1：接收传入GUID参数
guid = argv[1]   #注意：在开发环境调试为第一个参数 argv[1]; 调用第三方程序为第二个参数 argv[0]（因为第三方程序占用了第一个参数）
print(guid)

#2：连接基础数据库【CXT.RPA.db】
def guid_info(guid):    
    conn = sqlite3.connect(os.getenv("ALLUSERSPROFILE") + r"\CXT.RPA\CXT.RPA.db", timeout=10)                                
    cursor = conn.cursor()                               
    #3：根据参数GUID查询【ListenUrlRunLog】表中的【请求地址】，【数据请求头】，【请求返回数据】
    r = cursor.execute(f"SELECT url,headers,postData,body FROM ListenUrlRunLog where guid='{guid}'").fetchall()
    conn.close()

    url =  (r[0][0])
    headers = r[0][1]
    postData = r[0][2]
    response_body = r[0][3] 
    return url,headers,postData,response_body

url,headers,postData,response_body = guid_info(guid)
print(url)
print(response_body)
sleep(3)
print('-------------------------------------')
#3：使用urllib.parse 模块获取【请求头】及【请求结果】并组装成自己需要的【业务数据】
url_parse = parse.urlparse(url)#格式化url
url_querys = parse.parse_qs(url_parse.query)#参数部分
#postData_json = json.loads(postData)#json格式化postData内容
resp_json = json.loads(response_body)#json格式化返回内容

#从url_querys中取参数#
sleep(1)
#从postData中取参数#
sleep(1)
#从Cookie中取参数#
#unb = re.findall('unb=(.+?);', headers)[0]    # 从headers取当前账号ID
sleep(1)
#从response_body中取值#
sleep(10)
