如何获取php向其它网站发起了什么请求,有什么办法?
1. 运行环境
1). 当前使用的 Laravel 版本?
Laravel 5.4
2). 当前使用的 php/php-fpm 版本?
PHP 版本:7.2
2. 问题描述?
比如我使用了EasyWeChat、jpush、alibabacloud这些包,我想知道它们分别发起了哪些请求,并记录下来
PS:我只是想在本地开发的时候监测哪些请求被调用,所以一下几种暂不考虑。
- 需要重度侵入代码的方案
- 需要付费的方案
终于解决了
首先感谢各位的出谋划策和指导,特别是@kis龍和@deatil,最佳选了@kis龍,但@deatil的同样也值得最佳,奈何只能选一个
最终用了Fiddler抓包方案,下面是步骤和坑
- 安装Fiddler
- 配置:菜单项Tools->Options->HTTPS,勾选:
CaptureHTTPS CONNECTs
、Decrypt HTTPS traffic
、Ignore servercertificate errors
(开启https)
- 配置:菜单项Tools->Options->Connections,勾选:
allow remote computers to connect
(允许远程访问)
- 浏览器访问
http://127.0.0.1:8888/
,点击FiddlerRoot certificate
下载FiddlerRoot.cer
证书文件
- 在
FiddlerRoot.cer
证书文件目录下命令行执行openssl x509 -inform DER -in FiddlerRoot.cer -out FiddlerRoot.crt
- 将
FiddlerRoot.crt
文件拷贝到PHP容器的/usr/local/share/ca-certificates/
下,并执行update-ca-certificates
(Alpine系统)
- PHP容器添加环境变量:
HTTP_PROXY=192.168.31.187:8888
、HTTPS_PROXY=192.168.31.187:8888
- 重启容器,可以测试了
坑1:配置好步骤6后如果
docker compose up -d
就失效了,我就是因为配置好 后添加环境变量一up
就没了,(此处被自己蠢到),比较合理的做法是在制作镜像的时候就安装好
坑2:步骤5的证书格式转换网上有很多,但大部分会报错,最后是找到一个这个可用
推荐用前2种方法,有时候懒得配置,就用第一种