Yoast\WP\SEO\AI_HTTP_Request\Application
Request_Handler::handle
Executes the request to the API.
Метод класса: Request_Handler{}
Хуков нет.
Возвращает
Response. The response from the API.
Использование
$Request_Handler = new Request_Handler(); $Request_Handler->handle( $request ): Response;
- $request(Request) (обязательный)
- The request to execute.
Код Request_Handler::handle() Request Handler::handle Yoast 27.7
public function handle( Request $request ): Response {
$api_response = $this->api_client->perform_request(
$request->get_action_path(),
$request->get_body(),
$request->get_headers(),
$request->is_post(),
);
$response = $this->response_parser->parse( $api_response );
// phpcs:disable WordPress.Security.EscapeOutput.ExceptionNotEscaped -- false positive.
switch ( $response->get_response_code() ) {
case 200:
return $response;
case 401:
throw new Unauthorized_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
case 402:
throw new Payment_Required_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code(), null, $response->get_missing_licenses() );
case 403:
throw new Forbidden_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
case 404:
throw new Not_Found_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
case 408:
throw new Request_Timeout_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
case 429:
throw new Too_Many_Requests_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code(), null, $response->get_missing_licenses() );
case 500:
throw new Internal_Server_Error_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
case 503:
throw new Service_Unavailable_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
default:
throw new Bad_Request_Exception( $response->get_message(), $response->get_response_code(), $response->get_error_code() );
}
// phpcs:enable WordPress.Security.EscapeOutput.ExceptionNotEscaped
}