微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何让 GuzzleHttp 客户端正确发送 POST 请求?

如何解决如何让 GuzzleHttp 客户端正确发送 POST 请求?

根据 GuzzleHttp/Guzzle v7 (https://docs.guzzlephp.org/en/stable/quickstart.html#sending-form-fields) 的文档,应该可以选择使用这两个函数向 URL(例如 http://localhost/form.PHP)发送常规 POST 请求...

所以我的 form.PHP 看起来像这样:

<?PHP
var_dump([
    'REQUEST' => $_REQUEST,'GET'     => $_GET,'POST'    => $_POST,]);

还有这样的 Guzzle-Code:

<?PHP

require __DIR__ . '/vendor/autoload.PHP';

use GuzzleHttp\Client;

$client = new GuzzleHttp\Client([
    'base_uri' => 'http://localhost',]);

$r1 = $client->post( '/form.PHP',[
    'json' => [
        'lorem' => 'ipsum',]
]);

echo $r1->getBody()->getContents() . "\n\n============\n\n";

$r2 = $client->request( 'POST','/form.PHP',]
]);

echo $r2->getBody()->getContents();

... 运行 guzzle 代码的结果显示

array(3) {
  ["REQUEST"]=>
  array(0) {
  }
  ["GET"]=>
  array(0) {
  }
  ["POST"]=>
  array(0) {
  }
}


============

array(3) {
  ["REQUEST"]=>
  array(0) {
  }
  ["GET"]=>
  array(0) {
  }
  ["POST"]=>
  array(0) {
  }
}

我错过了什么/搞砸了什么? ...

浏览器中对 http://localhost/form.PHP?asdf 的请求导致(正确的)响应:

array(3) {
  ["REQUEST"]=>
  array(1) {
    ["asdf"]=>
    string(0) ""
  }
  ["GET"]=>
  array(1) {
    ["asdf"]=>
    string(0) ""
  }
  ["POST"]=>
  array(0) {
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。