我正在使用REST api,在执行一些REST请求时,有时会得到我想要的,有时会得到rest_ensure_response() :
{
"code": "rest_no_route",
"data": {
"status": 404
},
"message": "No route was found matching the URL and request method"
}
。。。但是如何处理该响应,因为它是作为简单的JSON对象(或数组)返回的。这不是我可以检查的WP\\U错误对象。
我实际上是这样做的:
function api_request($url){
$request = wp_remote_get($url);
if (is_wp_error($request)) return $request;
$response = wp_remote_retrieve_body( $request );
if (is_wp_error($response)) return $response;
$response = json_decode($response, true);
//handle errors ?
if ( $code = wpsstm_get_array_value(\'code\',$response) ){
$message = wpsstm_get_array_value(\'message\',$response);
$data = wpsstm_get_array_value(\'data\',$response);
$error = new WP_Error($code,$message,$data );
$this->debug_log($error,\'query API error\');
return $error;
}
return $response;
}
谢谢!