我尝试读取json数据,所以当状态为ok(200)的响应时,我可以以json格式正确获取数据,但是如果没有要返回的项目,webservice会返回一条消息,因此他会生成一条消息:
{"message " : "item not found" }
问题是,当symfony发现未找到的响应时,他会抛出未找到的异常,而我只想返回webservice提供的消息。
这是我的控制器代码:
/**
*
* @Get("/getUserByUid/{uid}")
*/
public function getUserByUidAction($uid)
{
$url = self::Ws_URL . self::Ws_PORT . self::Ws_GetUserByUID . $uid;
$headers = array() ;
$headers[] = "auth_token: ".self::Ws_Token ;
$headers[] = "Content-Type: application/json" ;
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
"http" =>array(
"method" => "GET",
"header" => "auth_token: ".self::Ws_Token
)
);
$response = file_get_contents($url, true, stream_context_create($arrContextOptions));
return New Response($response) ;
}
答案 0 :(得分:0)
如果Web服务是RESTFull,则返回带有上述消息{"message " : "item not found" }
的http代码404,然后file_get_contents
无法获取文件的内容,因为404正在说Does not exist
。要获得完整响应,http代码请使用curl
。