вернуть ответ curl как объект вместо строки - PullRequest
0 голосов
/ 15 февраля 2019

Я делаю запрос на керлинг.Возвращает строку вместо 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;

Что мне делать, чтобы получить запрос как объект?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...