api接口对接_接口API

api接口对接_接口API[TOC]api接口对接json模块总结:md5加密:双重加密:加盐:测试实列:

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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]\n',pwd ) 
print('[salt]\n', salt)  
print('[md5]\n', 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)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167354.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 机器学习-常用回归算法归纳(全网之最)

    机器学习-常用回归算法归纳(全网之最)文章目录前言一元线性回归多元线性回归局部加权线性回归多项式回归Lasso回归&Ridge回归Lasso回归Ridge回归岭回归和lasso回归的区别L1正则&L2正则弹性网络回归贝叶斯岭回归Huber回归KNNSVMSVM最大间隔支持向量&支持向量平面寻找最大间隔SVRCART树随机森林GBDTboosting思想AdaBoost思想提升树&梯度提升GBDT面试题整理XGBOOST面试题整理LightGBMXGBoost的缺点LightGBM的优化基于Hist

    2022年8月21日
    6
  • 【软件工程】详细设计说明书

    【软件工程】详细设计说明书详细设计说明书1引言1.1编写目的说明编写这份详细设计说明书的目的,指出预期的读者。该文档实在概要设计的基础上,进一步的细化系统结构,展示了软件啊结构的图标,物理设计,数据结构设计,及算法设计,详细的介绍了系统各个模块是如何实现的,包括涉及到的算法,逻辑流程等,为下一步系统的实现和测试做准备!1.2背景说明:a.软件名称:机房收费系统;b.本项目的任务提出者:米新江…

    2022年4月30日
    48
  • java和前端哪个好学_java和前端哪个难学?「建议收藏」

    java和前端哪个好学_java和前端哪个难学?「建议收藏」不是同一样东西,无法比较。Java和JavaScript哪个难学?前端和后端哪个难学?问Java和前端哪个难学,就像在问牛排和中餐哪个好吃一样。Java是门编程语言,前端是一个领域不能相比较。再回到正题。Java和JavaScript哪个难学?答案是各有各的难。仅仅对于一门编程语言而已,难也难不倒哪里去。你能说语法很难吗?你能说面向对象很难吗?理解了也没有那么难吧。我大学…

    2022年7月8日
    26
  • android之两种设置全屏或者无标题的方法

    在开发中我们经常需要把我们的应用设置为全屏或者不想要title,这里是有两种方法的,一种是在代码中设置,另一种方法是在配置文件里改:一、在代码中设置:package jason.tutor; import android.app.Activity; import android.os.Bundle; import android.view.Window; imp

    2022年3月9日
    45
  • YAML/Properties配置文件与Spring Boot(转)

    YAML/Properties配置文件与Spring Boot(转)

    2022年3月7日
    36
  • 运维架构体系

    运维架构体系 

    2022年7月17日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号