中国青年报APP设备注册

66 篇文章 202 订阅 ¥119.90 ¥299.90
28 篇文章 1973 订阅
本文详细分析了中国青年报APP的设备注册过程,包括抓包发现的三级结构,重点介绍了设备注册接口的POST请求,以及Authorization和X-Request-Id参数的生成算法。同时,提到了主页栏目列表接口和内容详情接口的URL,最后指出在请求头中的关键参数对于请求成功的重要性。
摘要由CSDN通过智能技术生成

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

我们还原下该注册请求:

# -*- 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()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Codeooo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值