【问题标题】:How to create curl request using Guzzle如何使用 Guzzle 创建 curl 请求
【发布时间】:2016-10-22 16:21:31
【问题描述】:

我需要使用 guzzle 执行以下 curl 请求:

CURL CALL:
==========
curl -i \
-X POST \
-H "X-Version: 1" \
-H "Content-Type: application/json" \
-H "Authorization: bearer yDqai70hZ8DKD93jy5XtkwPuEf90gU.TUQwZ.ShYjtpy1lkjXvxpbJXViH3ypBIVCAxOyWV" \
-H "Accept: application/json" \
-d '{"text":"Test Message","to":["27999000001"]}' \
-s \
https://api.clickatell.com/rest/message 

我有以下几点:

$client = new \GuzzleHttp\Client();
$result = $client->request('POST', 'https://api.clickatell.com/rest/message', [
    'headers' => [
        'Authorization' => 'Bearer '.config('clickatell.auth_token'),
        'Accept' => 'application/json',
        'Content-Type' => 'application/json',
        'X-Version' => 1
    ],
    'data' => [
        'to' => $sms->to,
        'text' => $sms->content
    ]
]);

但我得到了这样的回应:

[GuzzleHttp\Exception\ClientException]
  Client error: `POST https://api.clickatell.com/rest/message` resulted in a `400 Bad Request` response:
  {"error":{"code":"100","description":"Data malformed","documentation":"http://www.clickatell.com/help/apid
  ocs/error/100. (truncated...)

【问题讨论】:

标签: php curl guzzle


【解决方案1】:

您似乎没有对数据进行编码。您的响应中的错误消息表明请求数据不是有效的 JSON。

$requestData = json_encode([
    'to' => $sms->to,
    'text' => $sms->content
]);

$requestHeaders =  [
    'Authorization' => 'Bearer '.config('clickatell.auth_token'),
    'Accept' => 'application/json',
    'Content-Type' => 'application/json',
    'X-Version' => 1
];

$result = $client->request(
    'POST', 
    'https://api.clickatell.com/rest/message', 
    [
       'headers' => $requestHeaders,
       'data' => $requestData
    ]
);

另外,您可以使用post() 方法,而不是request()

$result = $client->post(
    'https://api.clickatell.com/rest/message', 
    [
       'headers' => $requestHeaders,
       'data' => $requestData
    ]
);

【讨论】:

    猜你喜欢
    • 2019-12-17
    • 2017-10-05
    • 2022-11-04
    • 2017-01-13
    • 2016-01-24
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 2019-03-26
    相关资源
    最近更新 更多