如何获取php向其它网站发起了什么请求,有什么办法?

1. 运行环境

1). 当前使用的 Laravel 版本?

Laravel 5.4

2). 当前使用的 php/php-fpm 版本?

PHP 版本:7.2

2. 问题描述?

比如我使用了EasyWeChat、jpush、alibabacloud这些包,我想知道它们分别发起了哪些请求,并记录下来

PS:我只是想在本地开发的时候监测哪些请求被调用,所以一下几种暂不考虑。

  1. 需要重度侵入代码的方案
  2. 需要付费的方案

终于解决了

首先感谢各位的出谋划策和指导,特别是@kis龍和@deatil,最佳选了@kis龍,但@deatil的同样也值得最佳,奈何只能选一个
最终用了Fiddler抓包方案,下面是步骤和坑

  1. 安装Fiddler
  1. 配置:菜单项Tools->Options->HTTPS,勾选:CaptureHTTPS CONNECTsDecrypt HTTPS trafficIgnore servercertificate errors(开启https)
  1. 配置:菜单项Tools->Options->Connections,勾选:allow remote computers to connect(允许远程访问)
  1. 浏览器访问http://127.0.0.1:8888/,点击FiddlerRoot certificate下载FiddlerRoot.cer证书文件
  1. FiddlerRoot.cer证书文件目录下命令行执行openssl x509 -inform DER -in FiddlerRoot.cer -out FiddlerRoot.crt
  1. FiddlerRoot.crt文件拷贝到PHP容器的/usr/local/share/ca-certificates/下,并执行update-ca-certificates(Alpine系统)
  1. PHP容器添加环境变量:HTTP_PROXY=192.168.31.187:8888HTTPS_PROXY=192.168.31.187:8888
  1. 重启容器,可以测试了

坑1:配置好步骤6后如果docker compose up -d就失效了,我就是因为配置好 后添加环境变量一up就没了,(此处被自己蠢到),比较合理的做法是在制作镜像的时候就安装好

坑2:步骤5的证书格式转换网上有很多,但大部分会报错,最后是找到一个这个可用

世界最好语言的追随者
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案
  1. 使用抓包工具,如 fiddler , php 中设置 http 代理,即可抓包
  2. 找到原始的请求,比如调用的是 guzzle, 那就找到 request 发送请求和相应请求的类,直接输入内容到某个文件
  3. 再每个地方添加代码,这个麻烦

推荐用前2种方法,有时候懒得配置,就用第一种

3年前 评论
renxiaotu (楼主) 3年前
kis龍 (作者) 3年前
kis龍 (作者) 3年前
renxiaotu (楼主) 3年前
kis龍 (作者) 3年前
renxiaotu (楼主) 3年前
renxiaotu (楼主) 3年前
kis龍 (作者) 3年前
renxiaotu (楼主) 3年前
renxiaotu (楼主) 3年前
kis龍 (作者) 3年前
renxiaotu (楼主) 3年前
renxiaotu (楼主) 3年前
kis龍 (作者) 3年前
renxiaotu (楼主) 3年前
kis龍 (作者) 3年前
讨论数量: 46
chowjiawei

Telescope 调试工具

满足你的需求

3年前 评论
renxiaotu (楼主) 3年前
❤seven 3年前
renxiaotu (楼主) 3年前

如果我没记错, Guzzle 有类似 事件和中间件一样的东西

3年前 评论
renxiaotu (楼主) 3年前
陈先生 (作者) 3年前
renxiaotu (楼主) 3年前
陈先生 (作者) 3年前
fatrbaby

这不就是链路追踪吗?哈哈。 如果要做到全面,应该在服务器这个层级做才可以,在php项目里不好搞。

3年前 评论
陈先生 3年前
renxiaotu (楼主) 3年前

从四个维度来讨论本问题

第一 代码层面 自己封装请求类,收集记录所有其他的调用

第二 基于linux命令的监控 linux.cn/article-3807-1.html
blog.csdn.net/liwb94/article/detai...

第三 服务器流量监控平台 服务器网络流量监控工具:功能强大直观的Ntopng和Munin部署实战 andyx.net/network_traffic_monitor_...

第四,链路追踪工具 www.oneapm.com/ai/php.html blog.csdn.net/qq_35904833/article/... skywalking.apache.org/zh/2020-04-1... 博客:Skywalking PHP客户端编译安装 OpenTracing 链路追踪

3年前 评论
renxiaotu (楼主) 3年前

本地就只能抓包软件看了

3年前 评论
renxiaotu (楼主) 3年前
jackbot 3年前
deatil (作者) 3年前
deatil (作者) 3年前
renxiaotu (楼主) 3年前
deatil (作者) 3年前
renxiaotu (楼主) 3年前
deatil (作者) 3年前
renxiaotu (楼主) 3年前

cURL扩展php自带。

3年前 评论
renxiaotu (楼主) 3年前
  1. 使用抓包工具,如 fiddler , php 中设置 http 代理,即可抓包
  2. 找到原始的请求,比如调用的是 guzzle, 那就找到 request 发送请求和相应请求的类,直接输入内容到某个文件
  3. 再每个地方添加代码,这个麻烦

推荐用前2种方法,有时候懒得配置,就用第一种

3年前 评论
renxiaotu (楼主) 3年前
kis龍 (作者) 3年前
kis龍 (作者) 3年前
renxiaotu (楼主) 3年前
kis龍 (作者) 3年前
renxiaotu (楼主) 3年前
renxiaotu (楼主) 3年前
kis龍 (作者) 3年前
renxiaotu (楼主) 3年前
renxiaotu (楼主) 3年前
kis龍 (作者) 3年前
renxiaotu (楼主) 3年前
renxiaotu (楼主) 3年前
kis龍 (作者) 3年前
renxiaotu (楼主) 3年前
kis龍 (作者) 3年前

解决了分享一下,php发送请求感觉有坑 我调sdk出错、也想抓这个请求。。最后都是各种形式换着发才成功的。有点浪费时间。

3年前 评论
renxiaotu (楼主) 3年前
renxiaotu (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!