美高梅4858-美高梅4858mgm-[官方网站]

Chuwen 发布的文章

Windows 安装 Ubuntu 系统(子系统),报错 WslRegisterDistribution failed with error: 0x8007019e

错误一:Error Code: 0x8007019e

WslRegisterDistribution failed with error: 0x8007019e

这是因为系统未安装Windows子系统支撑。

解决办法:

  1. 键盘行按键 Win+x,选择 Windows PowerShell(管理员)
  2. 输入 Enable-WindowsOptionalFeature -Online -FeatureName 微软-Windows-Subsystem-Linux 3. 按回车,然后输入Y并重启。 重启打开Ubuntu的命令窗口,等几分钟,输入账户和密码即可。

小米充电功率检测App (需要 ROOT 权限)

小米充电功率检测

欢迎加群 1006294793 反馈,谢谢!

v0.51 (最新版)

2020-08-29 17:16 发布

  1. 解决无法安装问题

下载链接:https://nowtime.lanzous.com/izLO4g6j5pg

V0.50

2020-08-29 15:48 发布

该版本无法安装,请勿下载

下载链接:https://nowtime.lanzous.com/izwleg6givc


美高梅4858mgm 使用 protobuf —— 支撑 web 端交互使用

转载自:https://bobjin.com/blog/view/54737b708031d8931158129c5c44a843.html

ProtoBuf 概况

Protocol Buffer的简称。谷歌旗下的一款平台无关,语言无关,可扩展的序列化结构数据格式,适合用于数据存储,作为不同应用、语言之间相互通信的数据交换格式,序列化后的数据为二进制数据(pb格式的数据),类比XML、JSON。

protobuf最先支撑C++ C# Go JAVA Python PHP语言,最近发布的代码包又支撑了美高梅4858mgm,今天就来谈下,js怎么使用protobuf。

官网地址 https://developers.google.com/protocol-buffers/

安装protobuf编译器

从github上下载编译器源码安装包,https://github.com/protocolbuffers/protobuf/releases

编译安装, 目前仅支撑unix类型的系统。

定义一个.proto文件

address.proto文件

message Address
{
    required string province  = 1;
    required string city = 2;
    required string county = 3;
}

编译生成访问类文件

运行下面的命令

protoc --js_out=import_style=commonjs,binary:. address.proto

会当前目录生成

address_pb.js

其中的 --js_out 的语法如下:

--js_out=[OPTIONS:]output_dir
如上面的例子中的option为 import_style=commonjs,binary, "."为生成文件的目录,这里为当前目录

打包为web可用的js文件

前置条件:需要安装npm。npm一般在安装nodejs的时候就会自动安装。

安装库文件的引用库
npm install -g require

安装打包成前端使用的js文件
npm install -g browserify

安装protobuf的库文件
npm install google-protobuf

打包js文件export.js

var address = require('./address_pb');
module.exports = {
    DataProto: address
}

编译生成可用js文件
browserify exports.js -o address_main.js

API

普通类型字段(required/optional)

get{FIELD}() // return field value

set{FIELD}(value) // set field value to value

clear{FIELD}(value) // clear filed value

数组类型字段操作(repeated)

add{FIELD}(value) // add one value to field

clear{FIELD}List() // clear filed

get{FIELD}List() // return array of field values

setInterestList(array)// set array

序列化/反序列化

serializeBinary() // 序列化

deserializeBinary(bin) // 反序列化(静态方法)

调试

toObject() // 打印数据

使用

<html>  
    <head>  
        <script type="text/javascript" src="./js/person_main.js"></script> 
    </head>
    <body>
        protobuf
    </body>
        <script type="text/javascript">
            var address1 = new proto.Address();
            address1.setProvince("北京");
            address1.setCity("北京");
            address1.setCounty("海淀");
            console.log(address1.toObject());
        </script>
</html>

江西省高校校园防疫自动签到PHP程序

Jiangxi-University-Health-Check-in

请注意,学校都是我虚构的,我并不是在 南昌大学 {滑稽}

PHP版本 江西省普通高等学校 校园防疫 健康签到 自动签到程序,项目地址 https://github.com/PrintNow/Jiangxi-University-Health-Check-in

抓包过程

根据老师说的,在 支付宝 -> 江西省终身学习卡 -> 小程序 -> 校园防疫 -> 健康签到 进行签到

然后我就尝试 HttpCanary APP 对支付宝抓包,但是我发现,并不能正常抓包,直接阻断了,只抓到一条关于 alipay.com 域名的
然后小程序提示加载失败

我就想到了支付宝可能对抓包有所屏蔽,网上搜的解决办法就是要装 XposedMagisk
之类的进行解除限制,我手机还没解锁,要解锁还得清除手机所有数据
,嫌弃麻烦就没有再去折腾了

大概 2020-07-26 左右,心血来潮,就去解锁了,输入 TWRP,刷入 Magisk,一气呵成
,根据网上查找的资料,在 Magisk 安装某个模块,就会将用户安装的证书转换为系统证书,
这样就可以愉快的抓包了,但是我照着做了后,并没有用,还是阻断了,支付宝小程序那里提示 加载失败 好像

最后,我在 HttpCanary 设置里发现了说推荐使用 平行空间 进行抓包,我在平行空间将支付宝添加进去,然后使用 HttpCanary平行空间抓包,果不其然,抓到了数据
发现这个签到平台加载的是一个网页,然后我在 Chrome 打开,发现没有任何限制,可以直接打开。

请往下看分析过程

- 阅读剩余部分 -

Android 使用 OkHttp 进行网络请求之 POST json数据

相关代码

只是避免遗忘,然后记录下的,具体还是要自己去搜索
        OkHttpClient okHttpClient = new OkHttpClient();

        //指定媒体类型
        MediaType mediaType = MediaType.parse("application/json");
        RequestBody requestBody = RequestBody.create(mediaType, json);
        Request request = new Request.Builder()
                .url(url)
                .post(requestBody)
                .build();
        okHttpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                SetSuggesRes = response.body().string();

                Log.d("请求成功", SetSuggesRes);

                /**
                 * 在Ui线程更新UI
                 */
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        requestDialog.hide();//隐藏那个加载对话框

                        try {
                            JSONObject resObj = new JSONObject(SetSuggesRes);

                            if (resObj.getString("RESULT").equals("S")) {
                                showNormalDialog("意见反馈", "意见反馈成功!", 1);
                            } else {
                                showNormalDialog("意见反馈", "意见反馈失败,原因:" + resObj.getString("ERRMSG").toString(), 2);
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                            showNormalDialog("意见反馈", "意见反馈失败,原因(远程服务器返回内容不符合预期):\n"
                                    + e.getMessage().toString(), 2);
                        }
                    }
                });
            }

            @Override
            public void onFailure(Call call, final IOException e) {
                Log.d("请求失败", e.getMessage().toString());
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        requestDialog.hide();
                        showNormalDialog("意见反馈", "意见反馈失败了,原因:\n" + e.getMessage(), 2);
                    }
                });
            }
        });
XML 地图 | Sitemap 地图