Я делаю запрос на керлинг.Возвращает строку вместо json.
case 1)
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Accept: application/json'
));
curl_setopt($ch, CURLOPT_URL,$this->accessTokenUri);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->accessTokenhttpQuery);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
\Log::info($result);
\Log::info(gettype($result));
печатает
invalid_request
case 2) без httpheaders
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$this->accessTokenUri);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->accessTokenhttpQuery);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
\Log::info($result);
\Log::info(gettype($result));
это печатает
результат и gettype это строка.
Я пробовал
a) json_encode($result)
, который говорит, что объект класса std не может 'не может быть преобразован в строку.
b) json_decode(json_encode($result, true));
- все еще не работает
Окончательный вариант
$tokenGrantParams = array(
"grant_type" => "test1",
"client_id" => "test2",
"client_secret" => "test3"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"urlhere");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($tokenGrantParams));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
$d = json_decode($result);
return $d;
Что мне делать, чтобы получить запрос как объект?