我需要模拟用户登录系统,并在登录后访问系统内部功能。这在很多没有提供sdk的系统是有帮助的。

import requests


class SystemClient:

    def __init__(self, username, password):

        self.username = username

        self.password = password

        self.token = None


    # 模拟登录并获取 token

    def login(self):

        login_url = "https://example.com/login"  # 登录页面的 URL

        payload = {

            'username': self.username,

            'password': self.password

        }

        response = requests.post(login_url, data=payload)

        if response.status_code == 200:

            # 假设登录成功后返回的 token 存在于响应的 JSON 数据中

            self.token = response.json().get('token')

            print("登录成功")

        else:

            print("登录失败")


    # 使用 token 访问系统内部 URL,并获取数据

    def access_internal_url(self, url):

        headers = {'Authorization': 'Bearer ' + self.token}  # 使用 Bearer Token 形式

        response = requests.get(url, headers=headers)

        if response.status_code == 200:

            # 处理响应数据

            print("访问成功,响应数据:", response.text)

        else:

            print("访问失败")


    # 将数据通过 URL 存入系统

    def save_data_to_system(self, data, save_url):

        headers = {

            'Authorization': 'Bearer ' + self.token,  # 使用 Bearer Token 形式

            'Content-Type': 'application/json'    # 假设发送的数据为 JSON 格式

        }

        response = requests.post(save_url, headers=headers, json=data)

        if response.status_code == 200:

            print("数据存入成功")

        else:

            print("数据存入失败")


# 示例调用

if __name__ == "__main__":

    # 假设登录凭证和系统内部 URL

    username = "your_username"

    password = "your_password"

    internal_url = "https://example.com/internal_url"  # 系统内部 URL

    save_url = "https://example.com/save_data"         # 存入数据的 URL


    # 创建系统客户端实例

    client = SystemClient(username, password)


    # 模拟登录并获取 token

    client.login()


    # 使用 token 访问系统内部 URL

    client.access_internal_url(internal_url)


    # 假设要存入的数据

    data_to_save = {'key': 'value'}


    # 将数据通过 URL 存入系统

    client.save_data_to_system(data_to_save, save_url)