卷曲要求与Guzzle的参数

时间:2017-07-18 13:58:38

标签: php laravel curl guzzle

我正在使用Laravel 5.2处理Guzzle 6.2,我有这个CURL请求:

curl -X POST "https://api.lifebot.fr/letters" \
  -u "test_12345678901234567890:" \
  -d '{
   "description": "Demo Letter 1",
   "to": {
    "name": "LIFEBOT",
    "address_line1": "30 rue de la république",
    "address_city": "Paris",
    "address_postalcode": "75015",
    "address_country": "France"
   },
   "color" : "color",
   "postage_type" : "prioritaire",
   "from": {
    "name": "LIFEBOT",
    "address_line1": "30 rue de la république",
    "address_city": "Paris",
    "address_postalcode": "75015",
    "address_country": "France"
   },
   "source_file": "<html style=\"padding-top: 3px; margin: 0.5px;\">Lettre HTML for {{name}}<\/html>",
   "source_file_type": "html",
   "variables" : {
    "name" : "Lifebot"
   }
}'

如果KI使用终端进行测试,此请求就可以。

因此,params -u是我的API密钥,-d是要发送到API的数据。 我怎么能用Guzzle转换它?

我尝试过类似的事情:

$result = $client->request('GET',
          'https://api.lifebot.fr/', [
          'u' => 'test_12345678901234567890'
          ]);

是什么语法与Guzzle一起添加我的param -u和我的param -d?

1 个答案:

答案 0 :(得分:1)

我会说你应该继续使用相同的请求类型(例如,POST而不是GET)。关于curl -u param,这是身份验证参数,因此您可以使用设置为apiKey和null密码的用户名转换为auth。 Curl -d param只是post请求中发送的正文内容。所以我相信它会像下面那样:

$client->request('POST', 
                 'https://api.lifebot.fr/', 
                 [ 
                     'auth' = [ 'test_12345678901234567890', '' ],
                     'body' =>      '{
                          "description": "Demo Letter 1",
                       ...
                        "name" : "Lifebot"
                       }
                    }'
                 ]);