当某个 Guzzle 操作必须忽略已配置的代理时,在该请求上显式传入一个空的代理选项:

$response = $client->request('GET', 'https://example.com/', [
    'proxy' => '',
    'timeout' => 15,
]);

这样路由选择在调用处就可见了。当其他请求共用同一进程时,这比临时删除环境变量更精确。

要保留“省略选项”与“显式空值”之间的区别。省略选项可能让客户端默认值或由环境推导出的配置继续生效。自定义 handler 或中间件也可能改变选项,因此如果路由仍然不同,请检查应用实际的 handler 栈。

空代理选项不会关闭 HTTPS 证书验证。请把这两类控制分开。将直连请求与经过代理的请求对比时,使用相同目标,并同时记录所选路由和实际响应。

相关文章