2016-10-22 5 views
0

を使用してカールリクエストを作成するには:どのようにがつがつ食うを使用して、次のカールのリクエストを実行する必要ががつがつ食う

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...) 
+1

するのではなく、post()メソッドを使用できますか? https://www.clickatell.com/developers/scripts/php-library/ – ceejayoz

答えて

0

データをエンコードしていないようです。応答からのエラーメッセージに、リクエストデータが有効なJSONではないことが示されています。彼らの公式SDKを使用しないのはなぜ

$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 
    ] 
); 

また、あなたはrequest()

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