zoukankan      html  css  js  c++  java
  • api接口对接

    api接口对接

    json模块

      Json   模块提供了四个方法: dumps、dump、loads、load
    
    pickle 模块也提供了四个功能:dumps、dump、loads、load
    
     dumps和dump   序列化方法
           dumps只完成了序列化为str,
           dump必须传文件描述符,将序列化的str保存到文件中
    

    总结:

    1. json序列化方法:
    
              dumps:无文件操作            dump:序列化+写入文件
    
      2. json反序列化方法:
    
              loads:无文件操作              load: 读文件+反序列化
    
      3. json模块序列化的数据 更通用
    
          picle模块序列化的数据 仅python可用,但功能强大,可以序列号函数
    
      4. json模块可以序列化和反序列化的  数据类型 见  python对象(obj) 与json对象的对应关系表
    
      5. 格式化写入文件利用  indent = 4 
    

    md5加密:

    import hashlib
    
    # 待加密信息
    str = '123456'
    # 创建md5对象
    hl = hashlib.md5()
    hl.update(str.encode("utf-8"))
    print('MD5加密前为 :' + str)
    print('MD5加密后为 :' + hl.hexdigest())
    

    双重加密:

    md5_obj=hashlib.md5("123456".encode("utf-8"))
    str1=md5_obj.hexdigest() #加密1次
    obj2=hashlib.md5(str1.encode("utf-8"))
    str2=obj2.hexdigest()#加密2次
    print(str2) #双重加密后,同样解密开
    

    加盐:

    from random import Random  
    import hashlib
      
    # 获取由4位随机大小写字母、数字组成的salt值  
    def create_salt(length = 4):  
        salt = ''  
        chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'  
        len_chars = len(chars) - 1  
        random = Random()  
        for i in range(length):  
            # 每次从chars中随机取一位  
            salt += chars[random.randint(0, len_chars)]  
        return salt  
      
    # 获取原始密码+salt的md5值  
    def create_md5(pwd,salt):  
        md5_obj = hashlib.md5()  
        md5_obj.update((pwd + salt).encode("utf-8"))  
        return md5_obj.hexdigest()  
      
    # 原始密码  
    pwd = '123456'  
    # 随机生成4位salt  
    salt = create_salt()  
    # 加密后的密码  
    md5 = create_md5(pwd, salt)  
      
    print('[pwd]
    ',pwd ) 
    print('[salt]
    ', salt)  
    print('[md5]
    ', md5) 
    
    post 请求:
        url = 'http://m.ctrip.com'
        payload = {'some': 'data'}
        r = requests.post(url, data=json.dumps(payload))
        
        headers = {'content-type': 'application/json'}
        url = 'http://47.95.71.224/v1/clue/saler'
        r = requests.post(url,data=post_data,headers=headers)
    

    测试实列:

    import hashlib
    import requests
    import json
    import time
    time = time.time()
    time = str(time).split('.')[0]
    token = 'JD8NF6SLIAF9JDS7NDSY'
    data = {
        'name': '先生',
        'mobile': '18079575676',
        'city': '南昌',
        'brand': '未知',
        'series': '未知',
        'model': '未知',
        'kilometer':'10',
        'licensed_date_year':'2010 3',
        'is_operation':'',
        'is_accidented':''
    }
    data = json.dumps(data)
    print(data)
    
    sign = hashlib.md5((data + token + time).encode("utf-8")).hexdigest()
    post_data = {
        'token': token,
        'sign': sign,
        'time': time,
        'data': data,
    }
    url = 'http://47.95.71.224/v1/clue/saler'
    r = requests.post(url, data=post_data)
    print(r.text)
    
    
  • 相关阅读:
    PointToPointNetDevice doesn't support TapBridgeHelper
    NS3系列—10———NS3 NodeContainer
    NS3系列—9———NS3 IP首部校验和
    NS3系列—8———NS3编译运行
    【习题 7-6 UVA
    【Good Bye 2017 C】 New Year and Curling
    【Good Bye 2017 B】 New Year and Buggy Bot
    【Good Bye 2017 A】New Year and Counting Cards
    【Educational Codeforces Round 35 D】Inversion Counting
    【Educational Codeforces Round 35 C】Two Cakes
  • 原文地址:https://www.cnblogs.com/shaozheng/p/12801415.html
Copyright © 2011-2022 走看看