Tento obter dados do serviço https://climate-api.open-meteo.com usando o método Http::get, mas executar o método de solicitação getBody retorna nulo, não uma matriz de dados:
$response = Http::get('https://climate-api.open-meteo.com/v1/climate', [
'query' => [
'latitude' => $latitude,
'longitude' => $longitude,
'start_date' => $from->format('Y-m-d'),
'end_date' => $to->format('Y-m-d'),
]
]);
// RETURNS TRUE
\Log::info(varDump($response->successful(), ' -10 $response->successful()::'));
// RETURNS 200
\Log::info(varDump($response->getStatusCode(), ' -11 $response->getStatusCode()::'));
// RETURNS NULL
\Log::info(varDump(json_decode($response->getBody(), true), ' -12 $response->getBody()::'));
Fazendo solicitação de amostra como:
https://climate-api.open-meteo.com/v1/climate?latitude=40.4165&longitude=-3.7026&start_date=2023-07-09&end_date=2023-07-11&models=CMCC_CM2_VHR4&daily=temperature_2m_max
Obtive uma estrutura de dados válida e não vejo que obtive dados inválidos no método $response->getBody()?
Acho que a falha está na Query string que você fornece onde deve passar da seguinte forma:
Além disso, não há nenhum método chamado
getBody
, mas ele é chamadobody
conforme o Laravel ilustrado aqui .