POST-запрос к Clevertap с помощью GuzzleHttp

Я использую Laravel 5.1 и Guzzlehttp 6.1 для отправки запроса на clevertap.

$client = new \GuzzleHttp\Client(['headers' => ['X-CleverTap-Account-Id' => '**********','X-CleverTap-Passcode'=>'*************8']]);$result = $client->request('POST','https://api.clevertap.com/1/upload',["d"=>[
"identity"=>"1189549",
"ts"=>1419421212,
"type"=>"profile",
"profileData"=>[
"Name"=>"Jack Montana",
"Email"=>"jack@gmail.com",
"Phone"=>"+14155551234",
"Gender"=>"M",
"Employed"=>"Y",
"Education"=>"Graduate",
"Married"=>"Y",
"Age"=>28,
"Customer Type"=>"Platinum",
]]]);

Я получаю следующую ошибку.

Ошибка клиента: POST https://api.clevertap.com/1/upload привело к
400 Bad Request ответ: {«status»: «fail», «error»: «Payload
является обязательным»}

1

Решение

Так же, как вы отправили идентификатор / токен в заголовке, обязательно отправьте полезную нагрузку внутри тела HTTP-запроса.

Что-то вроде этого:

$r = $client->request('POST', 'http://httpbin.org/post', [ 'body' =>'raw data' ]);

Это должно вернуть 200 ОК и сделать необходимые обновления.

1

Другие решения

Других решений пока нет …