我想在symfony
中使用guzzlehttp
使用RESTAPI进行post调用
我写了这段代码,但是响应
/**
* @Route("/post/")
*/
public function postAction()
{
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $url, [
'form_params' => [
'username' => 'test',
'password' => 'test',
]
]);
return $this->render('esterne/post.html.twig', array(
'response'=>$response,
));
}
这是树枝文件post.html.twig
{{response}}
结果是这样的:
{"status":"200","data":{"is_auth":true,"userToken":"194b873c004716acb3e0a5fba09fe405"}}
但如果我输入html:
return $this->render('esterne/post.html.twig', array(
'response'=>$response->getBody(),
));
它会导致错误500内部服务器错误
[2018-11-14 09:56:35]请求。关键:未捕获的PHP异常Twig_Error_运行时:“在呈现模板期间引发了异常(“可捕获的致命错误:GuzzleHttp\Psr7\Response类的对象无法转换为字符串”)。”在/app/app/Resources/views/estene/post。html。细枝行1{“异常”:“[object](细枝错误运行时(代码:0):在呈现模板期间引发异常(\“可捕获致命错误:GuzzleHttp\Psr7\Response类的对象无法转换为字符串\”)。at/app/app/Resources/views/estene/post.html。细枝:1,错误异常(代码:0):可捕获致命错误:GuzzleHttp\Psr7\Response类的对象无法转换为/app/var/cache/prod/twig/47/478CA9F9B0A5C69CAA7B0FED874BF8314662307635F396F057DC2C33868549处的字符串。php:23)“}[]
解决方案
使用文件
{{ response|json_encode()|raw }}
细枝末节
return $this->render('esterne/post.html.twig', array(
'response'=>json_decode($response->getBody()->getContents(), FALSE),
));
您可以尝试以下响应。
return $this->render('esterne/post.html.twig', array(
'response'=>$response->getBody()->getContent(),
));