如何获取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的证书格式转换网上有很多,但大部分会报错,最后是找到一个这个可用

世界最好语言的追随者
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案
  1. 使用抓包工具,如 fiddler , php 中设置 http 代理,即可抓包
  2. 找到原始的请求,比如调用的是 guzzle, 那就找到 request 发送请求和相应请求的类,直接输入内容到某个文件
  3. 再每个地方添加代码,这个麻烦

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

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

Telescope 调试工具

满足你的需求

2年前 评论
renxiaotu (楼主) 2年前
❤seven 2年前
renxiaotu (楼主) 2年前
陈先生

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

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

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

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

从四个维度来讨论本问题

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

第二 基于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 链路追踪

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

本地就只能抓包软件看了

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

cURL扩展php自带。

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

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

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

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

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

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