Php 使用代理的Guzzle 参考资料:
环境: 我正在尝试将代理服务器用于异步Guzzle调用 我发现,当我在创建客户机时设置代理时,它是有效的 e、 g 但是,当创建没有选项的客户端时。。然后根据请求设置代理,根本不使用代理,guzzle直接从客户端机器连接到服务器机器。通过点击并检查httpbin返回的来源来确认这一点 我需要在每个请求上设置代理的能力 以下是相关代码:Php 使用代理的Guzzle 参考资料:,php,proxy,guzzle6,Php,Proxy,Guzzle6,环境: 我正在尝试将代理服务器用于异步Guzzle调用 我发现,当我在创建客户机时设置代理时,它是有效的 e、 g 但是,当创建没有选项的客户端时。。然后根据请求设置代理,根本不使用代理,guzzle直接从客户端机器连接到服务器机器。通过点击并检查httpbin返回的来源来确认这一点 我需要在每个请求上设置代理的能力 以下是相关代码: $client = new Client(); $request = new Request( 'GET',
$client = new Client();
$request = new Request(
'GET',
'http://httpbin.org/ip',
['proxy' => 'tcp://64.140.159.209:80']
);
$client->sendAsync($request)
->then(
...closure here
// process here
);
希望这对某人有帮助 该文档仅列出从客户端创建新请求 这意味着我理解错了用法。我直接创建了新的请求,并传递了第三个参数和代理信息,希望在单个客户机中每个请求都能更改代理信息。看起来代理是基于每个客户端设置的,即使您正在进行异步调用 因此,我必须修改我的应用程序,以便在每个异步请求中使用新的客户机
new Client(['proxy' => 'tcp://64.140.159.209:80'])
$client = new Client();
$request = new Request(
'GET',
'http://httpbin.org/ip',
['proxy' => 'tcp://64.140.159.209:80']
);
$client->sendAsync($request)
->then(
...closure here
// process here
);