If you’re encountering the “Object of class GuzzleHttp\Psr7\Response could not be converted to string” error in your Laravel application, don’t worry. we’ll examine the issue and provide a step-by-step solution to resolve it.
Understanding the Issue
The error is occurring because you’re trying to concatenate or directly use the GuzzleHttp\Psr7\Response
object as a string in your log statements.
Error Context
Here’s the snippet of the code where the error is happening:
$response = $guzzleClient->request('POST', $url, $params);
Log::info('response: ' . $response);
$array = $response->getBody()->getContents();
Log::info('array: ' . $array);
$json = json_decode($array, true);
Log::info('json: ' . $json);
Solution: Remove Unnecessary Logs
To resolve the issue, it’s important to avoid trying to directly use the GuzzleHttp\Psr7\Response
object in log statements. Here’s the modified code with unnecessary logs removed:
private static function getHospitalMgmntAccessToken() {
Log::info('In HospitalManagementController->getHospitalMgmntAccessToken()');
try {
$guzzleClient = new Client();
$url = Config::get('app.HOSPITAL_MANAGEMENT_BASE_URL') . Config::get('app.HOSPITAL_M_OAUTH_TOKEN_URL');
$params = [
'form_params' => [
'grant_type' => Config::get('app.HOSPITAL_M_GRANT'),
'client_id' => Config::get('app.HOSPITAL_M_CLIENT'),
'client_secret' => Config::get('app.HOSPITAL_M_CLIENT'),
'redirect_uri' => '',
]
];
Log::info('Getting the token ...');
Log::info('Token Url: ' . $url);
$response = $guzzleClient->request('POST', $url, $params);
$array = $response->getBody()->getContents();
$json = json_decode($array, true);
$collection = collect($json);
$access_token = $collection->get('access_token');
Log::info('Got the token!');
return $access_token;
} catch (\Exception $e) {
Log::info('There is some exception in HospitalManagementController->getHospitalMgmntAccessToken()');
Log::info($e);
return '';
}
}
n this solution:
- Unnecessary logs such as
Log::info('response: ' . $response);
,Log::info('array: ' . $array);
, andLog::info('json: ' . $json);
have been removed.
By making these adjustments, you ensure that you’re logging meaningful information without attempting to directly concatenate the GuzzleHttp\Psr7\Response
object as a string, which was causing the error. This should resolve the issue you were facing.
[…] Error: “Object of class GuzzleHttpPsr7Response could not be converted to string”Error: […]