php-使用GuzzleHttp从HTTP调用获取cookie的值

我现在正在使用GuzzleHttp发出HTTP请求,首先我向login.asp发出POST请求,该请求返回带有Set-Cookie的响应,该响应具有我将来的请求所需的值

php-使用GuzzleHttp从HTTP调用获取cookie的值

当我检查获得的答案时,我得到以下信息

php-使用GuzzleHttp从HTTP调用获取cookie的值

如前所述,我得到了除Set-Cookie以外的所有键,这会发生什么?我如何获得该价值?我正在使用“ guzzlehttp / guzzle”:“ ^ 6.3”,还是可以使用其他工具来获得它?

    $jar = new CookieJar;

    $client = new Client([
        'base_uri' =>'miurl/',
        'timeout'  => 10.0,
        'cookies' => $jar
    ]);

    $response = $client->request('POST', 'login.asp',  [
        'form_params' => [
            'pws' => '',//data password
            'user' => '',//data user
        ]
    ]);

    //Request require coookies

    $response = $client->request('POST', 'goform/Wls',  [
        'form_params' => [
            /*Form´Params*/
        ],
       //if I manually add a correct userid the post application works fine
        'headers' => [
            //Require cookie param userid 
            'Cookie' => 'LANG_COOKIE=lang_span; userid=1524324306',
        ]
    ]);

Alternatively, I used this configuration without being able to obtain the cookie yet

使用邮递员检查一下答案,是在正确登录后仍在同一页面上但使用javascript重定向,这会产生影响吗?

<script language='JavaScript'>window.location='/admin/cable-Systeminfo.asp';</script>
</html>

我直接要求路由器Hitron技术cgnv22来管理mac过滤,我想提供更多信息,但它是敏感信息

解决方法:

似乎您正在以正确的方式发出请求,并传递了CookieJarInterface的实例.但是,您不应该期望Set-Cookie标头.相反,请检查您的罐子以检查返回了哪些cookie.

以下示例显示了如何迭代所有cookie:

$client = new \GuzzleHttp\Client();

$jar = new \GuzzleHttp\Cookie\CookieJar();
$request = $client->request('GET', 'https://www.google.com/', [
    'cookies' => $jar
]);

$it = $jar->getIterator();
while ($it->valid()) {
    var_dump($it->current());
    $it->next();
}

这是上面片段的示例输出:

object(GuzzleHttp\Cookie\SetCookie)#36 (1) {
  ["data":"GuzzleHttp\Cookie\SetCookie":private]=>
  array(9) {
    ["Name"]=>
    string(3) "NID"
    ["Value"]=>
    string(132) "130=dmyl6v*******"
    ["Domain"]=>
    string(11) ".google.com"
    ["Path"]=>
    string(1) "/"
    ["Max-Age"]=>
    NULL
    ["Expires"]=>
    int(1542242169)
    ["Secure"]=>
    bool(false)
    ["Discard"]=>
    bool(false)
    ["HttpOnly"]=>
    bool(true)
  }
}

有关如何访问返回的cookie的更多信息,请参考CookieJar类07​​000.此外,您可以查看ArrayIterator类的docs.

上一篇:php-使用Guzzle将数据更新为EventBrite API


下一篇:PHP-在Guzzle中以编程方式构建查询字符串?