目录
JD平台API接口
api接口对接
json模块
md5加密:
双重加密:
加盐:
测试实列:
JD平台API接口
京东API(Application Programming Interface)是京东提供的一组符合RESTful规范的接口,可以用来获取京东商品、订单等信息,同时也支持商家实现商品上架、订单处理等操作。这些API可以通过HTTP请求进行访问,并返回JSON格式的数据。开发者可以通过京东API实现自己的应用,如代理商品销售、数据分析等。京东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 =
# 随机生成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 =
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)