когда я запускаю запрос на завивку со строкой, он работает (как показано ниже).
Однако динамически генерируя значения с помощью массива, а затем преобразуя их в объект, я получаю сообщение об ошибке;
"Объект класса stdClass не может быть преобразован в строку"
Пример кода:
Это работает:
Код: Выделить всё
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://routes.googleapis.com/directions/v2:computeRoutes',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"origin":{
"location":{
"latLng":{
"latitude": 37.419734,
"longitude": -122.0827784
}
}
},
"destination":{
"location":{
"latLng":{
"latitude": 37.417670,
"longitude": -122.079595
}
}
},
"travelMode": "DRIVE",
"routingPreference": "TRAFFIC_AWARE",
"computeAlternativeRoutes": false,
"routeModifiers": {
"avoidTolls": false,
"avoidHighways": false,
"avoidFerries": false
},
"languageCode": "en-US",
"units": "METRIC"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'X-Goog-Api-Key: myPrivateKey',
'X-Goog-FieldMask: *'
),
));
$res = curl_exec($curl);
curl_close($curl);
DD($res);
Пример ошибки:
Код: Выделить всё
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://routes.googleapis.com/directions/v2:computeRoutes',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_decode(json_encode($this->converToObjects())),
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'X-Goog-Api-Key: myPrivateKey',
'X-Goog-FieldMask: *'
),
));
$res = curl_exec($curl);
curl_close($curl);
Код: Выделить всё
public function converToObjects()
{
return [
'origin' => [
'location' => [
'latLng' => [
'latitude' => 37.419734,
'longitude' => -122.0827784
]
]
],
'destination' => [
'location' => [
'latLng' => [
'latitude' => 37.41767,
'longitude' => -122.079595
]
]
],
'travelMode' => 'DRIVE',
'routingPreference' => 'TRAFFIC_AWARE',
'computeAlternativeRoutes' => false,
'routeModifiers' => [
'avoidTolls' => false,
'avoidHighways' => false,
'avoidFerries' => false
],
'languageCode' => 'en-US',
'units' => 'METRIC'
];
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... o-string-w