gpt4 book ai didi

php - 在 Guzzle 中设置代理

转载 作者:可可西里 更新时间:2023-11-01 12:29:03 27 4
gpt4 key购买 nike

我在 guzzle 中设置代理时遇到问题,显示空白页面,而 curl 一切正常。我在 guzzle 和 curl 中使用的代码如下。这段代码有什么问题: Guzzle :

use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;

require_once "vendor/autoload.php";

try {
$client = new Client();
$request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org');
$response = $client->send($request, [
'timeout' => 30,
'curl' => [
'CURLOPT_PROXY' => '*.*.*.*',
'CURLOPT_PROXYPORT' => *,
'CURLOPT_PROXYUSERPWD' => '*:*',
],

]);
echo '</pre>';
echo($response->getBody());
exit;
} catch (RequestException $e) {
echo $e->getRequest();
if ($e->hasResponse()) {
echo $e->getResponse();
}
}

以及带有 CURL 的代码:

$url = 'http://httpbin.org';
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($ch, CURLOPT_PROXY, '*.*.*.*');
curl_setopt($ch, CURLOPT_PROXYPORT, *);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, '*:*');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$page = curl_exec($ch);
echo $page;

谢谢。

最佳答案

至于 Guzzle 6

Guzzle docs提供有关为单个请求设置代理的信息

$client->request('GET', '/', ['proxy' => 'tcp://localhost:8125']);

但是可以在初始化客户端的时候设置为所有请求

    $client = new Client([
'base_uri' => 'http://doma.in/',
'timeout' => 10.0,
'cookie' => true,
'proxy' => 'tcp://12.34.56.78:3128',
]);

更新。我不知道为什么,但我遇到了一种奇怪的行为。一台 guzzle 版本 6.2.2 的服务器与上面的配置配合得很好,而另一台具有相同版本的服务器从代理接收到 400 Bad Request HTTP 错误。它通过另一个配置结构解决(在 docs for guzzle 3 中找到)

$client = new Client([
'base_uri' => 'http://doma.in/',
'timeout' => 10.0,
'cookie' => true,
'request.options' => [
'proxy' => 'tcp://12.34.56.78:3128',
],
]);

关于php - 在 Guzzle 中设置代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32324893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com