应用场景:

确认接口是能用的,但自己使用时就是不行,参数有没有传正确?格式对不对?傻傻分不清。

抓包工具:
这里演示 charles , 常用的还有 Fiddler, HttpWatch, WireShark.

安装
下载 charles 并安装, 如何激活? 方法较多也比较简单. 你懂的佛曰不可多说.
此处省略500字…

查看代理地址:
点击 Proxy,选择 proxy settings, 输入端口 8888 .
所以我们本机的代理地址可以直接是 127.0.0.1:8888 .
如果其他设备要使用本机的代理, 那就是 本机IP:8888 .

使用之前请确认 http://127.0.0.1:8888 代理程序打开.

抓nodejs的包
我们可以使用 https-proxy-agent 这个库来抓 node.js 的包.

node 原生 https 抓包示例:

var url = require('url');
var https = require('https');
var HttpsProxyAgent = require('https-proxy-agent'); // 要连接的HTTP / HTTPS代理
var proxy = process.env.http_proxy || 'http://127.0.0.1:8888';
console.log('using proxy server %j', proxy); // 代理连接的HTTPS端点
var endpoint = process.argv[2] || 'https://www.httpbin.org/get';
console.log('attempting to GET %j', endpoint);
var options = url.parse(endpoint); // 使用代理服务器信息创建`HttpsProxyAgent`类的实例
var agent = new HttpsProxyAgent(proxy);
options.agent = agent; https.get(options, function (res) {
console.log('"response" event!', res.headers);
res.pipe(process.stdout);
});

在 fetch 中使用:

fetch(api, {
agent: new HttpsProxyAgent("http://127.0.0.1:8888")
})

在 axios 中使用: 很高兴告诉你, axios 中不需要其他依赖库

axios.get(api, {
proxy: {
host: '127.0.0.1',
port: 8888,
}
})

抓浏览器的包
导出相应的证书, 以供不同地方使用.

安装证书到系统

配置系统代理。

抓手机的包
让手机和电脑使用同一网络

安装证书到手机系统

把手机的代理设置为电脑的IP和端口

防坑锦囊
一些浏览器需要把证书安装到浏览器上, 比如火狐.

不允许自签证书抓包
Error: SSL Error: SELF_SIGNED_CERT_IN_CHAIN
Error: self signed certificate in certificate chain

使用 NODE_TLS_REJECT_UNAUTHORIZED=’0’ 变量启动 node 程序即可.

解决抓到的报文乱码
在 Proxy → SSL Proxying 菜单下, 下载根证书, 并且在钥匙串里设置信任此证书.

安装证书是为了解析 https 请求.

扩展阅读
https-proxy-agent 官网:
https://www.npmjs.com/package/https-proxy-agent

Charles抓包工具 for MAC配置与使用
https://juejin.im/post/5b690cbaf265da0f6436ec67

解决Charles抓取https报文乱码问题
https://www.jianshu.com/p/60b2b76b9066

抓包 抓nodejs的包 抓浏览器的包 抓手机的包的更多相关文章

  1. fidder 抓 https包配置方法(ios & android & pc浏览器)

    1. fidder抓https包的基本配置,可参见以下博文 http://blog.csdn.net/idlear/article/details/50999490 2. 遇到问题:抓包看只有Tunn ...

  2. fiddler对浏览器、app抓包及证书安装(转)

    http://blog.csdn.net/u011608531/article/details/50838227 1.fiddler对浏览器抓包 1.1 对浏览器的http的抓包 Capturing开 ...

  3. fiddler对浏览器、app抓包及证书安装

    1.fiddler对浏览器抓包 1.1 对浏览器的http的抓包 Capturing开启,进行抓包: Capturing关闭,停止抓包: 如下图:  1.2 对浏览器的https抓包 1.2.1 开启 ...

  4. Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

    一:HTTP和HTTPS的区别 HTTP是超文本传输协议,被用在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,因此HTTP协议不适合传输一些敏感信息, ...

  5. 《Wireshark数据包分析实战》 - http背后,tcp/ip抓包分析

    作为网络开发人员,使用fiddler无疑是最好的选择,方便易用功能强. 但是什么作为爱学习的同学,是不应该止步于http协议的,学习wireshark则可以满足这方面的需求.wireshark作为抓取 ...

  6. Fiddler怎样抓取手机的包

    Fiddler作为代理服务器,可以拦截到手机发出的请求,再经过Fiddler发送到服务器,获取到服务器响应的数据,这个过程,只要设置配置好了,使用过程不受影响. 要想抓取到手机的包,先要给手机设置一个 ...

  7. NodeJS文件读取:感恩常在--抓把糖果,愉悦客人

    通过上一篇文章“NodeJS服务器:一行代码 = 一个的HTTP服务器”,我们已经开启了NodeJS之旅,开发了一个监听在8000端口的HTTP服务器,虽然功能很简单,但是,已经让我们感受到用Node ...

  8. 项目 Web 的 NuGet 程序包还原失败: 找不到“1.0.0”版本的程序包“Microsoft.Net.Compilers”。。 0

    项目   Web 的 NuGet 程序包还原失败: 找不到“1.0.0”版本的程序包“Microsoft.Net.Compilers”.. 0 使用vs的NutGet包管理器时,另一台电脑从svn下载 ...

  9. Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包

    Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>& ...

随机推荐

  1. 项目Beta冲刺--5/7

    项目Beta冲刺--5/7 作业要求 这个作业属于哪个课程 软件工程1916-W(福州大学) 这个作业要求在哪里 项目Beta冲刺 团队名称 基于云的胜利冲锋队 项目名称 云评:高校学生成绩综合评估及 ...

  2. 本地项目git到github上

    步骤: 1.下载git,安装完成后到桌面右击鼠标会出现git的选项 2.创建一个本地仓库用来存储你的本地项目,我在D盘创建一个reposity的文件夹 3.在reposity文件夹打开git命令行,输 ...

  3. Spring中AOP方式实现多数据源切换

    作者:suroot spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要 ...

  4. Codeforces 1038 D. Slime

    [传送门] 其实就是这些数字前面能加正负号,在满足正负号均出现的情况下价值最大.那么就可以无脑DP$f[i][j][k]$表示到了第$i$位,正号是否出现($j$.$k$为$0$或$1$)能得到的最大 ...

  5. &和&& 每天学一点linux

    原文:http://www.cnblogs.com/TianFang/archive/2013/01/23/2872645.html & 放在启动参数后面表示设置此进程为后台进程 默认情况下, ...

  6. 开源项目(5-2) yolo打包成库

    Windows系统下YOLO动态链接库的封装和调用 Windows10+VS2015+OpenCV3.4.1+CUDA8.0+cuDNN8.0 参考教程 https://blog.csdn.net/s ...

  7. PostgreSQL Autovacuum和vacuum

    1 基础知识 重点: 如果您的数据库运行了很久,并且从来没有打开过autovacuum,那么请在打开autovacuum之前全库手动运行vacuum analyze(可能要非常久的时间)完全禁用aut ...

  8. ent 基本使用 三 边(关系处理)

    ent 提供了图查询的能力,实际上在关系数据库中的表现就是relation,以下代码接前文 添加边(关系) 添加schema entc init Car Group 效果: 添加字段 car pack ...

  9. ABP 01 项目的基本运行

    原文:https://www.cnblogs.com/ldybyz/p/8441084.html 照着这篇文章弄 一般是没有什么问题的 记录一下我出现的问题,大多是没有仔细看文章. 1.无法迁移数据库 ...

  10. 简述tcp三次握手

    第一次握手:建立连接时,客户端向服务端发送SYN(同步序列编号),其中包含客户端的初始序号seq(序列号)=x,并进入SYN_SENT(请求连接)状态,等待服务器确认. 第二次握手:服务器收到请求后, ...