http://docs.guzzlephp.org/en/stable/request-options.html#proxy
GuzzleHttp/6.2.1
curl/7.47.0
PHP/7.1.3-3+deb.sury.org~xenial+1
我正在尝试使用代理服务器进行异步Guzzle调用。
我发现当我在创建客户端时设置代理时,它可以工作。
e.g。
new Client(['proxy' => 'tcp://64.140.159.209:80'])
然而,当创建没有选项的客户端..然后在Request上设置代理时,根本不使用代理,并且guzzle从客户端机器到服务器机器进行直接连接。通过点击http://httpbin.org/ip并检查httpbin返回的Origin来确认这一点。
我需要能够为每个请求设置代理。
以下是相关代码:
$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
);
答案 0 :(得分:1)
希望这对某人有帮助。
文档http://docs.guzzlephp.org/en/stable/request-options.html#proxy仅列出从客户端创建新请求。
这意味着我理解错误的用法。我正在直接创建新的Request并传递第三个param和代理信息,期望在单个客户端中根据请求进行更改。看起来代理是基于每个客户端设置的,即使您正在进行异步调用。
因此,我必须修改我的应用程序以使用每个异步请求的新客户端。