业余时间想找个免费的智能AI接口用,体验了几款插件真不错,比如Bito插件和IDE神器Cursor,但不知道他们的后台接口。想着看看他们的接口,不用说肯定是https加密的。http包透明传输还好,但是大多数是https加密传输的,一般的工具还真不好抓包。使用了一款抓包神器Charles,真不错。这里推荐分享下。
Charles 简介
Charles 是在 PC 端常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。
Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。
Charles 主要的功能包括:
截取 Http 和 Https 网络封包。
支持重发网络请求,方便后端调试。
支持修改网络请求参数。
支持网络请求的截获并动态修改。
支持模拟慢速网络。
下载安装 Charles
官方地址:https://www.charlesproxy.com/
百度云盘:链接:https://pan.baidu.com/s/1y7C6g7GbbVb3LKCOWxeQ-A
提取码:sub7
乱码问题解决
Charles抓https包时request和respond都出现乱码问题,除了help->ssl Proxying安装证书,
proxy->SSL Proxying Settings等设置完后,还需要在httpsroxy>SSL Proxying Settings>SSL Proxying,添加Host:*,Port:443,问题解决。
抓包实战
以下以抓取Bito插件的访问为例。在vscode中搜索安装Bito插件,再开启Charles的情况下,访问以下,如图所示,就抓到通信的https包啦。
以下为抓包内容。接口和内容都出来啦。
接下来,模拟发送https报文试试吧。
模拟https发送
模拟https发送,也是有工具可用的。比如大名鼎鼎的postman。但是还得下载安装。这里使用vscode的插件神器,rest client更好用啊。
POST https://bitoai.bito.co/ai/v1/chat/?processSilently=true HTTP/1.1
content-type: application/json
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="102"
authorization: 996755
sec-ch-ua-mobile: ?0
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.75.1 Chrome/102.0.5005.194 Electron/19.1.9 Safari/537.36
sec-ch-ua-platform: "Windows"
accept: */*
origin: vscode-webview://00ufp6vep7ebxxxx8638xxxxxxxxx0kqpom
sec-fetch-site: cross-site
sec-fetch-mode: cors
sec-fetch-dest: empty
accept-encoding: gzip, deflate, br
accept-language: en-US
{
"bitoUserId": 13667,
"email": "534117529@qq.com",
"ideName": "VSCODE",
"prompt": "c++,hello world",
"uId": "330aae23-xxxx-4885-897b-xxxxxx2ce",
"wsId": 10549,
"context": [],
"stream": true,
"requestId": "4xx0-5e55-8959-fddc-axxxxx2b64"
}
不过这Bito接口,回复的内容竟一个字一包的蹦,可真浪费流量啊。实在不明白接口设计者为嘛要这样。让你觉得实时生成?这样体验上好?好吧,这bito是在浪费互联网带宽,为了体验搞这样的接口着实有点儿太...
其他资源
Charles介绍与使用_weixin_43563705的博客-CSDN博客
Whistle 抓包简易教程_huangpb0624的博客-CSDN博客