将curl转换为guzzle


convert curl to guzzle

我有这个完美的curl命令:

curl -i --data "site=walletgroove.com&placement=above&device=desktop&source=*&campaign=*&url=*&country=*&active=1" http://10.0.0.38/adserver/src/public/api/rule 我试着用guzzle执行,但由于某种原因,我一直从我的代码中得到错误,更准确地说,是一个异常。当参数没有正确传递时抛出此异常。这是我为数不多的尝试之一:

public function testApi_postRule()
{
    $client = new Client();
    $client->post('http://10.0.0.38/adserver/src/public/api/rule',[ 'query' => [
         'site' => 'walletgroove.com',
         'placement' => 'guzzle_unique_placement',
         'device' => 'desktop',
         'source' => 'guzzource',
         'campaign' => '*',
         'country' => '*',
         'url' => '*',
         'active' => '1'
        ]]);
    }

你知道我做错了什么吗??

您正在传递query参数,该参数附加一个查询字符串而不是在请求正文中发送。对于POST请求,您可能希望使用文档中所示的form_params

$client->post('http://10.0.0.38/adserver/src/public/api/rule', [
    'form_params' => [
        'site' => 'walletgroove.com',
        'placement' => 'guzzle_unique_placement',
        'device' => 'desktop',
        'source' => 'guzzource',
        'campaign' => '*',
        'country' => '*',
        'url' => '*',
        'active' => '1'
    ]
]);