Charles 是移动开发和移动端测试时常用的网络封包截取工具,通过网络截取封包来分析以及调试与服务器端的网络通讯协议。

ios stream抓包443错误 苹果stream抓包改参数_抓包工具

一、Charles 简介

Charles 是一款基于 HTTP 协议的代理服务器,特点:跨平台、半免费。
主要功能点:

  • 支持截取 Http 和 Https 请求的网络包
  • 支持模拟慢速网络
  • 支持修改网络请求值或返回值
  • 支持网络截取的动态修改
  • 支持重发网络请求
二、使用 Charles 进行移动端抓包
  • 确保手机和自己的电脑连接的是同一个网络。
  • Mac 端设置:
    1) 关掉 Mac 端的防火墙。
  • ios stream抓包443错误 苹果stream抓包改参数_抓包工具_02

  • 2)点击 Proxy -> Proxy Settings 打开 Charles 的代理设置功能弹窗,填入代理端口(端口默认为 8888,如果端口没有冲突不用修改),勾选 Enable transparent HTTP proxying。
  • ios stream抓包443错误 苹果stream抓包改参数_网络请求_03

  • 3)如果不需要抓取Mac的请求,可以取消勾选 Proxy -> macOS Proxy。
  • ios stream抓包443错误 苹果stream抓包改参数_抓包工具_04

  • 手机端配置:
    1)进行手机端设置首先需要获取 Mac 的 IP 地址,查看电脑 IP 的方式:
  • 通过 Charles 的主菜单 Help -> Local IP Address
  • 通过命令行工具输入 ipconfig 查看电脑端的 IP 地址。

2)设置代理:打开手机的 WIFI 代理设置,输入电脑 IP 和 Charles 的代理端口。

ios stream抓包443错误 苹果stream抓包改参数_Charles_05

  • 设置完成之后,在手机上进行一次任何网络请求,就可以看到请求连接 Charles 的确认弹窗,点击 Allow 即可完成设置。

    如果误点 “Deny”,手机无法进行网络请求,主要有两种处理办法:
    1、关闭 Charles 重新启动,然后重新发起请求即可
    2、点击 Proxy -> Access Control Settings 打开权限控制设置界面手动设置IP即可,如果想允许所有手机访问,添加0.0.0.0/0即可允许所有IPv4的请求,添加::/0即可允许所有IPv6的请求
三、使用 Charles 进行 HTTPS 抓包

抓取 HTTPS 网络封包之前还需要在 HTTP 设置的基础上完成SSL证书的设置,设置过程如下:

  • Mac 安装 Charles 证书
    1)通过菜单 Help -> SSL Proxying -> Install Charles Root Certificate 安装证书。
    2)通过菜单 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser 手动安装证书。

    3)设置 SSL 代理
    点击 Proxy -> SSL Proxy Settings 打开 SSL 代理设置窗口,勾选 Enable SSL proxying。如果设置*:443表示截取所有的 HTTPS 请求
  • 移动端安装 Charles 证书
    1)手机和电脑连接同一网络后,浏览器访问 chls.pro/ssl 下载并安装证书。
    2)小米手机6的安装方式参考博客: 小米6–安装Charles证书
    3)苹果手机安装完成之后,部分系统需要在“设置->通用->关于本地->证书信任设置”中完成证书的信任
  • 设置完成之后,就可以进行 HTTPS 抓包了。
四、常用功能总结

1、模拟慢速网络

需要使用弱网环境进行测试时,可以借助 Charles 的 Throttling 功能,Proxy -> Throttle Settings 和 Proxy -> Start Throttling 配合使用

ios stream抓包443错误 苹果stream抓包改参数_网络请求_06


2、断点

需要对某一请求的请求参数或者返回值做简单的修改时,可以通过 Charles 的 Breakpoints 功能实现,Proxy -> Breakpoints Settings 和Proxy -> Enable Breakpoints 配合使用,不过需要注意的是一般要快速修改才可以成功,手速慢可能会有超时等多种情况导致修改不生效,重写(Rewrite)功能(使用看后面介绍)可以实现请求参数和返回值的修改。

ios stream抓包443错误 苹果stream抓包改参数_SSL_07


3、Map 功能

  • Tools -> Map Remote 功能是将特定的网络请求转向指定的某一网络请求,设置时需要指定源网络请求地址以及目标网络请求地址
  • Tools -> Map Local 功能是将特定的网络请求转向本地文件,把服务端返回数据存储到本地文件,进行对应规则的修改之后可以实现对客户端兼容性、健壮性等的测试

    4、Rewrite功能
    Tools -> Rewrite 支持删除、修改、增加参数(head、body、url、response等)

    5、重发请求
    通过 Repeat 功能可以对服务器进行简单的压力测试,Charles 拦截的请求右键选择Repeat执行一次重发请求,选择 Repeat Advanced 进行设置并发数以及每个请求的请求次数等。

6、模拟发送请求

  • Tools -> Compose 自己主动模拟发送请求,需要设置请求域名
  • 直接模拟发送 Charles 拦截的请求


数据库查询到的值怎么存容器中

一、 简单查询   简单的Transact-SQL查询只包括 选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。    例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 SELECT nickname,email   FROM testtable