GuzzleHttp\Client::request() 必须是数组类型,给定布尔值

GuzzleHttp\Client::request() must be of the type array, boolean given

好的,我用 "guzzlehttp/guzzle": "~6.0" for laravel.

它在服务器上工作,但在我的 XAMPP 上不工作,我不知道是什么问题。这是错误代码。

传递给 GuzzleHttp\Client::request() 的参数 3 必须是数组类型,给定布尔值

这是代码:

$param_data = array(
    'api_user'  => Config::get('sendgrid.api_user'),
    'api_key'   => Config::get('sendgrid.api_key'),
    'list'      => Config::get('sendgrid.list'),
    'email'     => 'xxxxxxx@yahoo.com',
);

$client = new Client();
$client->setDefaultOption('verify', false);
$res    = $client->request(
    'GET',
    'https://api.sendgrid.com/api/newsletter/lists/email/get.json',
    [
    'query' => $param_data
    ]
);

$arr_res = json_decode($res->getBody());
print_r( $arr_res );

同样的错误我在我的代码中这样解决了

 $param_data = array(
        'api_user'  => Config::get('sendgrid.api_user'),
        'api_key'   => Config::get('sendgrid.api_key'),
        'list'      => Config::get('sendgrid.list'),
        'email'     => 'xxxxxxx@yahoo.com',
    );

    $client = new Client();
    $client->setDefaultOption('verify', false);
    $res    = $client->request(
               array(
                      'GET', 
                      'https://api.sendgrid.com/api/newsletter/lists/email/get.json?query='.$param_data,
                   ));

    $arr_res = json_decode($res->getBody());
    print_r( $arr_res );

此外,如果您在同一页面中使用 Laravel 请求和 Guzzle 请求,那么您需要像这样使用它。

use Illuminate\Http\Request;
use GuzzleHttp\Psr7\Request as GuzzleRequest;

试试这个希望这对你有用:)