青花瓷(charles)的基本使用和注意事项

一、charles是什么

        info:使用青花瓷也有一段时间了,之前都是用于抓自己项目app的http请求包,但是最近由于使用的时候遇到了https不能被展示的问题,结果遇到了一些坑,打算写一下,方便自己和别人。青花瓷可用于抓取安装青花瓷本地电脑的浏览器(http请求),可以在App(Android、ios)的手机上设置代理,用于抓取app发出的http或https(http+ssl)请求的包(这个需要对https有一定的理解,后面会写一篇https的文章。。。)。省略过下载(本想在csdn放一个包的,但是不让放的)和安装的过程。

二、charles抓App的http请求包

        一般来说现在手机都会使用wifi,则只是要求手机的wifi网段(被自动分配的IP地址)和安装青花瓷的电脑的IP在同一网段内即可。这点很重要。我最近就有两个,搞了半天才发现,不在同一网段,不能请求数据(原因是公司开发的时候由于maven私服会在另一个网段的服务器上,而手机使用的是另一个wifi,所以没有注意这一点)。

  1、charles端配置

    打开charles软件,在proxy 》 proxy Setting中,可以看到http的默认监听端口是8888,并且可以看到在第三个页签中是windows窗口,用于监听当前windows系统的请求抓包,如下图:

       需要知道当前电脑的IP地址,方便同一域名的手机设置代理(ipconfig 或ipconfig -all):

  

  2、手机端配置

    需要在手机的wifi连接下配置代理,顺序如下图:

   则若当前的请求为http(明文传输)请求,则在青花瓷端可以抓包,并且解析数据了,如图:

三、charles抓App的https请求包

        首先一点要在保证上面都ok的情况下,特别是刚才说的同一网段,并且能抓http请求包的情况下再来配置https的,首先要知道https就是在http请的基础上加上ssl(secure sockets Layer)层,然后再加上公认的CA(Certificate Authority)证书授权中心。我在安装的过程中遇到一个坑,当我在我的ios (系统为11)的手机上用浏览器打开http://www.charlesproxy.com/getssl/的时候,发现没有下载证书,就是因为没有上面的安装条件。

1、在charles端设置ssl代理

    第一、首先需要安装证书,如下:

    其中chls.pro/ssl就是需要在手机浏览器中下载证书的地址,也可以只有刚才说的http://www.charlesproxy.com/getssl/

    第二、这样手机端的证书就设置完成了。设置服务器端的证书,步骤如下图:

 

       第三、然后就需要配置charles端的ssl代理,还在是proxy菜单下,找到ssl proxy进行设置IP和端口等,如下图:

       

2、在ios端安装证书

    在手机浏览器中输入上面的地址,即马上会下载证书包(若没有反应请检查上面的步骤),安装完成后需要同意证书的使用,并设置ssl的代理,如下图:

在完成以上安装后需要在,ios手机的设置中找到以下路径:设置》通用》关于本机》证书信任设置(在最下面),将Charles Proxy CA... 设置为信任状态,再看看能不能抓到https的包并且进行解析,如果一切正常,则如下:

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 Arduino 控制蜂鸣器演奏《青花瓷》的示例代码: ```C++ // 定义蜂鸣器引脚 #define BUZZER_PIN 8 // 定义音符频率 #define NOTE_C4 262 #define NOTE_D4 294 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_G4 392 #define NOTE_A4 440 #define NOTE_B4 494 #define NOTE_C5 523 // 定义每个音符的持续时间 #define NOTE_DURATION 500 // 定义演奏的曲目 int melody[] = { NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5, NOTE_B4, NOTE_A4, NOTE_G4, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_A4, NOTE_G4, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5, NOTE_B4, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_C5, NOTE_D5, NOTE_B4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5, NOTE_B4, NOTE_A4, NOTE_G4, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_A4, NOTE_G4, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_C4 }; // 定义演奏的曲目对应的节奏 int noteDurations[] = { NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION, NOTE_DURATION }; void setup() { // 初始化串口 Serial.begin(9600); // 设置蜂鸣器引脚为输出 pinMode(BUZZER_PIN, OUTPUT); } void loop() { // 演奏曲目 for (int i = 0; i < sizeof(melody) / sizeof(int); i++) { tone(BUZZER_PIN, melody[i], noteDurations[i]); delay(noteDurations[i] * 1.3); // 延时一段时间以让音符完整演奏 noTone(BUZZER_PIN); // 停止演奏 } } ``` 你可以将以上代码复制到 Arduino IDE 中,然后将 Arduino 板子连接到计算机上,选择正确的板子和端口,编译上传即可。在演奏时,将蜂鸣器连接到 Arduino 板子的 8 号引脚上即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值