- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写 Guzzle 中间件(版本 6.2.1)以允许出站 HTTP 请求的代理粘性 session 。例如,第一次访问代理服务器池会返回一个代理节点 ID header 。在后续请求中使用此 header 值将确保继续使用相同的节点。
这是我的问题:使用 HTTPS 时,代理节点 ID header 包含在初始代理连接 header 中。无论我尝试什么,我似乎都无法在 Guzzle 中访问它。这是在基于 PHP 原生 libcurl 的 Curl 下运行的典型事务:
HTTP/1.0 200 Connection established
Proxy-Node-ID: 12345
HTTP/1.1 200 OK
Date: Mon, 03 Oct 2016 00:06:04 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
P3P: CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Set-Cookie: NID=87=VP_ptZU47mOXvC10uU2Ue6UVpLi8p9ngovbLfViChxGjEupGx3UKh4QXi2dyU0QqBSwfgkR9nxgJGLQdnAm2adKWsAGvdzZCCwgC1kqJpc0ZE9BNaqT_FapqULWGitx0ZNQJpJfJYZIasQ; expires=Tue, 04-Apr-2017 00:06:04 GMT; path=/; domain=.google.com; HttpOnly
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32"
Accept-Ranges: none
Vary: Accept-Encoding
Transfer-Encoding: chunked
require_once __DIR__ . '/vendor/autoload.php';
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Handler\CurlHandler;
$handler = new CurlHandler();
$stack = HandlerStack::create($handler);
$url = 'https://www.google.com/';
// Select proxy:
$proxy = 'http://'.'someuser:somepass' .'@'.'someproxy.com:12345';
// Instantiate client with options:
$client = new Client(['handler' => $stack,
'proxy' => $proxy,]);
$response = $client->request('GET', $url);
$responseHeaders = $response->getHeaders();
foreach ($responseHeaders as $key => $values) {
$responseHeaders[$key] = implode(', ', $values);
}
var_dump($responseHeaders);
array(13) {
["Date"]=>
string(29) "Mon, 03 Oct 2016 01:35:55 GMT"
["Expires"]=>
string(2) "-1"
["Cache-Control"]=>
string(18) "private, max-age=0"
["Content-Type"]=>
string(29) "text/html; charset=ISO-8859-1"
["P3P"]=>
string(109) "CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info.""
["Server"]=>
string(3) "gws"
["X-XSS-Protection"]=>
string(13) "1; mode=block"
["X-Frame-Options"]=>
string(10) "SAMEORIGIN"
["Set-Cookie"]=>
string(214) "NID=87=ATOuQjSf6g_95LdzKPjeec1NGABDjgysBZF35AEwNK1YSGWe5nbvFot1Ju_f_H1vL2FAPYK26HhWWqePDfL2XlBxBUpMd0yDbqEdH6nST1qqesGl3nV-Hp1CTcLg_YhB; expires=Tue, 04-Apr-2017 01:35:55 GMT; path=/; domain=.google.co.uk; HttpOnly"
["Alt-Svc"]=>
string(43) "quic=":443"; ma=2592000; v="36,35,34,33,32""
["Accept-Ranges"]=>
string(4) "none"
["Vary"]=>
string(15) "Accept-Encoding"
["Transfer-Encoding"]=>
string(7) "chunked"
}
最佳答案
迟到总比我想的好。
我花了几个小时才让它工作。
$url = 'https://www.google.com/';
// Select proxy:
$proxy = 'http://'.'someuser:somepass' .'@'.'someproxy.com:12345';$headers = [];
$guzzleClient = new Client();
$options = [
'proxy' => $proxy,
\GuzzleHttp\RequestOptions::ON_HEADERS => function (ResponseInterface $response) use (&$headers) {
$headers = array_merge($headers, $response->getHeaders());
}
];
$response = $guzzleClient->get($url, $options);
关于php - 在 HTTPS 期间访问 Guzzle 代理 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39823638/
当我运行以下代码(使用最新的 Guzzle v6)时,请求的 URL 是 http://example.com/foobar?foo=bar删除 boo=far从请求。 $guzzle_http_cl
我正在使用 Guzzle 并发请求工具: http://docs.guzzlephp.org/en/latest/quickstart.html#concurrent-requests 我的代码类似于
我需要将 header 类型添加到下面的 guzzle 请求中,但无法弄清楚如何在不出错的情况下添加它这是我要添加的内容: $command->set('command.headers', array
我正在使用 lumen 尝试通过 guzzle 设置简单的 api 请求。 问题是 base_uri 参数似乎没有在初始 new Client() 上正确传递. 简化示例: use GuzzleHtt
我正在使用 Guzzle 6。 我正在尝试模拟客户端并像这样使用它: 'application/json'], 'foo'), ]); $history = []; $history_middlew
我正在尝试使用 Guzzle 而不是直接使用 cURL 来实现和 HTTP 请求。我如何使用 Guzzle 发出相同类型的请求?或者我应该坚持使用cURL? $ch = curl_init(); //
Guzzle 的 API 文档在哪里? 有这两个链接(看起来是同一件事): http://guzzle.readthedocs.org/en/latest/quickstart.html http:/
我有一个页面使用 Guzzle 6 执行一些 REST 查询。它工作正常,但有时速度太慢,因为它总是进行查询。我发现有 guzzle-cache-middleware应该缓存来自远程 API 的响应。
在 Symfony 4 项目中,我使用 eightpoints/guzzle 包来调用远程 API。安装 bundle (并在单独的 yaml 文件中配置客户端)后,我关注了 this quide让我
您可以使用 Guzzle 的 Pool:batch() 方法并行执行 http 请求。它允许您使用第三个参数中的 options 键为请求设置默认选项。 但是如果我需要为池中的不同请求提供不同的选项怎
我正在尝试使用 Guzzle 5 连接到 WooCommerce API(Guzzle 6 似乎没有 oAuth 选项 o.O)。 Woocommerce requires the oAuth aut
我在 laravel 项目中遇到问题。 它显示了这个错误 Fatal Error : Class 'Guzzle\Http\Client' not found 我已安装 Guzzle 并将其添加到配置
Guzzle/Http的新手。 我有一个API rest url登录名,如果未授权,则用401代码回答;如果缺少值,则用400回答。 我将获取http状态代码以检查是否存在某些问题,但不能仅包含代码(
A. 总结 顾名思义,Guzzle 允许一次发送多个请求以节省时间,如 documentation . $responses = $client->send(array( $requestOb
我正在使用 PayPal API 模拟负面响应,以便在客户通过 onApprove 方法批准付款时获得响应并正确处理付款的关键部分。 我正在使用 GuzzleHttp + Laravel 来捕获 客户
我一直在尝试从工作中获取 GET 请求,但不断收到 500 错误。 我不知道发生了什么。 如果我执行以下操作,它可以正常工作: 'http://www.google.com', ]); $respo
我如何通过 guzzle 服务客户端获取发布数据 getCommand功能? 我的 json 如下所示: "createMessage": { "httpMethod": "P
之间有什么区别? GuzzleHttp ReactPHP Amphp 它们之间有何不同?与典型的用例一起使用是什么? 最佳答案 它们之间的主要区别是Guzzle是HTTP客户端,而Amp和ReactP
我不确定为什么会收到此错误: php composer.phar require guzzle/guzzle:~3.7 错误 : ./composer.json has been update
我想使用Guzzle和Silex将请求发送到https页面。 使用http url我有一个回应: app->get('/',function() use ($app, $client){ $r
我是一名优秀的程序员,十分优秀!