# -*- coding: UTF-8 -*-

import requests

"""
Http 工具类封装
"""


class RequestUtil:

    def __init__(self):
        pass

    def request(self, url, method, headers=None, param=None, content_type=None):
        """
        通用请求工具类
        :param url:
        :param method:
        :param heasers:
        :param param:
        :param content_type:
        :return:
        """
        try:
            if method == "get":
                result = requests.get(url=url, params=param, headers=headers).json()
                return result
            elif method == "post":
                if content_type == "application/json":
                    result = requests.post(url=url, json=param, headers=headers).json()
                    return result
                else:
                    result = requests.post(url=url, data=param, headers=headers).content
                    return result
        except Exception as e:
            print("http请求报错{0}".format(e))


if __name__ == '__main__':
    r = RequestUtil()
    # url = "https://i.cnblogs.com/api/user"
    # headers = {"cookie":"__gads=ID=d19a3f1f03f32f53:T=1681988164:S=ALNI_MZYgZ1D0JmOpNwg-M2V-0aD8SS9wQ; SyntaxHighlighter=python; __gpi=UID=00000544d3fc84c0:T=1652274704:RT=1683370435:S=ALNI_Ma-LkdkFEThw4kklsGymaxW1nuN0A; .AspNetCore.Antiforgery.b8-pDmTq1XM=CfDJ8M-opqJn5c1MsCC_BxLIULlv2AWo3YOcVEnIKuvUMpuDjx5vj6aeAfXOgWPYudXU0fqMFSzgwlv5iU-RhWiRfdZLQpTNGg3TKU-BUko1mmSIRaSvkPJbljx-eFeWvMNfYmYwkF__rs-Z2wCdRNp3EPM; .Cnblogs.AspNetCore.Cookies=CfDJ8M-opqJn5c1MsCC_BxLIULm6CqIacq3472P0NGh2WEOEkVKukxaYDYqJVQ4mAClRmbAx7L6OQNaX-1d4rtSqyy9AN1-QImCX8qOq99upCI3tDAHR1O802ev8_JiPwzYLJ-0zLHWS089CzPGCpAoM5GAgTY6uGETefsSuziMCiASMpjiE-fUs8y3oBSog6FP14_aPEYU-idf3FFmM8A1hnc8uiO7i4RDLinFON9tgh7k0kMqImNhCTWPLBswa2O924e3_u1-9QCJMXj36VAANJL8qWheiQhXOsu2yhJ8Kux0slKqutLi1Qg_src_Qi1P1umRsQk_Vwo_sRILoAfVe1kAsIh5FTLXovt4YPjfGCviJPHPiiuJvzbn3B75x901M58bo6veP7lYpt6deSo4yhHX3lW3Qo3J6_0A1si5S99tQfGL-_hGH3Q07punjz3VIAlDIqJA9tQ9h0BvvXrgo0S-dIsG5yrfedIxOn3tZuJTzFYN8uR0s7Zf99sSAuxap4xvSS1NO6442yCN7lGTsni6vf9iVarJFvQjt0mOVymrAVKf109E7aSoajEzAH1BrhIQ3ItChHgKwcCRTw-Jd8pcawQ-ZC7FZa8j6e-EuLHca; .CNBlogsCookie=821A4F3E266A7841F55775B4A984EA8A357755E45E33B90D6EFA49EBF865704FC92D154D76725AEF07827DDC92B8CA12E1098EE01AFD36A2EF069D493786766B36F9636E90D4A11A8046E85B711E383D433F0A0F; _ga_3Q0DVSGN10=GS1.1.1683959055.10.1.1683959059.56.0.0; Hm_lvt_866c9be12d4a814454792b1fd0fed295=1683288176,1683367897,1683377706,1683959097; Hm_lpvt_866c9be12d4a814454792b1fd0fed295=1683959097; _ga=GA1.2.420515007.1646791376; _gid=GA1.2.938394120.1683959097; _gat_gtag_UA_476124_1=1; XSRF-TOKEN=CfDJ8M-opqJn5c1MsCC_BxLIULlYxWD92UJKXZzzZeXs3ONEmkJAN--1C66J5S7_BJBRewiHE9DAj-oRnuALgV4Q-SsKDpRIQQOVtfUb82B-j2BSccE5EoQB40hPomPGPMJEAK3_F4ixG-GKm9se0rXuUpQVTv9Y-UZe7RJwbhh8K4EG2s5r7Ar0gTHlr-SjwxA8uw; _ga_C2LFP3RFGH=GS1.1.1683957983.19.1.1683959100.0.0.0"}
    # result = r.request(url,"get",headers)
    # print(result)

    url = "https://api-v2.xdclass.net/api/order/v1/page"
    headers = {
        "token": "dcloud-clienteyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ4ZGNsYXNzIiwiaGVhZF9pbWciOiJodHRwczovL3RoaXJkd3gucWxvZ28uY24vbW1vcGVuL3ZpXzMyL1EwajRUd0dUZlRLcjNua3Q1YTdKR21SNERWdzkxQ0cwUDRMQzBpYmttQTl6a09WUldhS2h3eGFZOHRFa0hQSHAzeUpuaWJqdVdkVFhRc3kyZUN2NzdIOEEvMTMyIiwiYWNjb3VudF9pZCI6NjgwODMzNCwidXNlcm5hbWUiOiJNcnN-44COQXBwbGXjgI8iLCJyb2xlIjoiQ09NTU9OIiwibWVkYWwiOiIiLCJpYXQiOjE2ODQxNDY4NzMsImV4cCI6MTY4NDc1MTY3M30.w4EEMU8c0wMrhkjnIc9r0LR8ReCuYTZ2GTdF9VGDN-U"}
    content_type = "application/json"
    data = {"page": "1", "size": "5"}
    result = r.request(url, "post", param=data, headers=headers,content_type=content_type)
    print(result)

    # url = "https://aegis.qq.com/collect?id=QVPbQSJEKeD8GaVVXj&uin=&version=1.36.16&aid=cb8632b4-139a-461f-bf37-6c7b14f2a535&env=production&platform=3&netType=4&vp=1536%20*%20214&sr=1536%20*%20864&sessionId=session-1683973150868&from=https%3A%2F%2Fke.qq.com%2F&referer=https%3A%2F%2Fke.qq.com%2F&ext1=prod&ext3=%7B%7D"
    # headers = {"content_type": "application/x-www-form-urlencoded"}
    # result = r.request(url, "post", headers=headers)
    # print(result)

    # url = "https://api-v2.xdclass.net/api/account/v1/login"
    # content_type = "application/json"
    # data = {"identifier": "13113777555", "credential": "1234567890"}
    # result = r.request(url, "post", param=data, content_type=content_type)
    # print(result)

 

# -*- coding: UTF-8 -*-
import unittest

import requests

from util.RequestUtil import RequestUtil

host = "https://i.cnblogs.com"


class IndexTestCase(unittest.TestCase):
    def testIndexCategoryList(self):
        """
        首页分类列表
        """
        request = RequestUtil()
        url = host + "/ngsw.json?ngsw-cache-bust=0.7913836232857812"
        data = {"ngsw-cache-bust": 0.7913836232857812}
        response = request.request(url, "get", param=data)
        self.assertEqual(response["configVersion"], 1, "首页分类列表业务状态码异常")
        print("1")

    def testLogin(self):
        request = RequestUtil()
        url = "https://api-v2.xdclass.net/api/account/v1/login"
        data = {"identifier": "13113777555", "credential": "1234567890"}
        content_type = "application/json"
        response = request.request(url, "post", param=data, content_type=content_type)

        self.assertEqual(response["code"], 0, "登录接口业务状态码异常")
        self.assertTrue(len(response["data"]) > 0, "返回data为空")
        print("2")

        print(response)


if __name__ == "__main__":
    unittest.main()
# -*- coding: UTF-8 -*-
import unittest

import requests

from util.RequestUtil import RequestUtil

host = "https://aegis.qq.com"


class PostTestCase(unittest.TestCase):
    def testPost(self):

        request = RequestUtil()
        url = host + "/collect?id=QVPbQSJEKeD8GaVVXj&uin=&version=1.36.16&aid=cb8632b4-139a-461f-bf37-6c7b14f2a535&env=production&platform=3&netType=4&vp=1536%20*%20214&sr=1536%20*%20864&sessionId=session-1683973150868&from=https%3A%2F%2Fke.qq.com%2F&referer=https%3A%2F%2Fke.qq.com%2F&ext1=prod&ext3=%7B%7D"
        headers = {"content_type": "application/x-www-form-urlencoded"}
        response = request.request(url, "post", headers=headers)
        self.assertTrue(len(str(response))>0, "首页分类列表业务状态码异常")
        print(response)
        print(len(str(response)))

if __name__ == "__main__":
    unittest.main()

 

 

# -*- coding: UTF-8 -*-

import unittest
import os


def load_all_test():
    """
    加载全部测试用例
    :return:
    """
    # 用例路径
    # case_path = "D:/xdclassProject/xd_api_test/case"
    case_path = os.path.join(os.getcwd(), "../case")
    print(case_path)
    print(os.getcwd())
    discover = unittest.defaultTestLoader.discover(case_path, pattern="*Case.py", top_level_dir=None)
    return discover

if __name__ == "__main__":
    runner = unittest.TextTestRunner(verbosity=2)
    runner.run(load_all_test())