Authorization: Bearer xxxxxeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
X-Request-Id: 32da7b1b-a858-3140-8f32-b21ec43c109a
主要解决这两个参数的生成算法。
三级结构,我们抓包看一下:
主页栏目列表接口:
https://i.cyol.com/peony/v1/group?module_name=home&type=nav&channel=28Dga1xp
这里我们看到 温暖的BaoBao id为:Q3Dlb12g
title=温暖的BaoBao 栏目下 有很多新闻如下:
接口:https://i.cyol.com/peony/v1/content?group_name=home&gid=Q3Dlb12g&pagesize=15&pageindex=2&payload=default
也就是 :
post_url = 'https://i.cyol.com/peony/v1/content?group_name=home&gid=%s&pagesize=50&pageindex=1&payload=default' % startId
内容的id也就是为:post_id
eg:
title=成都宣布9月19日起有序恢复生产生活秩序
post_id=1OQaGPt7
请求呢最后详情内容接口:
https://i.cyol.com/peony/v1/content/1OQaGPt7?less=false&p_type=0
好了协议分析完毕,我们测试下请求发现并不成功。
请求头中:
Authorization: Bearer xxxxxeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
X-Request-Id: 32da7b1b-a858-3140-8f32-b21ec43c109a
这两参数有点东西哈。
我们分析 :Authorization 及 X-Request-Id
通过脱掉360壳, 反编译后, 我们发现这个是, 通过 X-Request-Id 去注册认证 Authorization该参数
上下文主界面启动设备注册算法
//X-Request-Id :
DeviceIdFactory.getInstance(context).getDeviceUuid();
//Authorization :
requestBuilder.addHeader("Authorization", SpUtil.Companion.getString(BaseApplication.Companion.getAppInstance(), "auth_token"));
我们清掉缓存重新打开下,查找下设备注册认证的接口。
设备注册接口: post
https://i.cyol.com/peony/v1/auth文章来源:https://www.toymoban.com/news/detail-595763.html
我们还原下该注册请求:文章来源地址https://www.toymoban.com/news/detail-595763.html
# -*- coding: utf-8 -*-
# @Author : Codeooo
# @Time : 2022/09/19
import uuid
import json
import requests
request_headers = {
"headers": {
'Host': 'i.cyol.com',
'X-Version': '4.8.2',
'Content-Type': 'application/json',
'User-Agent': 'zhong guo qing nian bao/4.7.1 (Scale/3.00)',
}
}
def get_Authorization():
"""
上下文主界面启动设备注册算法
X-Request-Id : DeviceIdFactory.getInstance(context).getDeviceUuid();
Authorization :requestBuilder.addHeader("Authorization", SpUtil.Companion.getString(BaseApplication.Companion.getAppInstance(), "auth_token"));
"""
data = {"appid": 1, "platform": "mobile"}
request_headers['headers']['X-Request-Id'] = str(uuid.uuid1())
try:
auth_response = requests.post(
"https://i.cyol.com/peony/v1/auth",
headers=request_headers['headers'],
data=json.dumps(data),
proxies=None,
verify=False
)
token = auth_response.json().get("data").get("token")
request_headers['headers']['Authorization'] = token
except Exception as e:
print("=======设备注册失败========")
print(request_headers['headers'])
def get_request_list():
resp = requests.get(
"https://i.cyol.com/peony/v1/group?module_name=home&type=nav&channel=28Dga1xp",
headers=request_headers['headers']
)
groups = resp.json().get("data").get("groups")
start_list = [{group.get("name") + ":" + group.get("id")} for group in groups if group]
print(start_list)
if __name__ == '__main__':
get_Authorization()
get_request_list()
到了这里,关于中国青年报APP设备注册的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!