Yoast\WP\SEO\MyYoast_Client\Infrastructure\Http

HTTP_Client::store_rate_limit_responseprivateYoast 1.0

Stores a 429 response in the expiring store for later replay.

Метод класса: HTTP_Client{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

// private - только в коде основоного (родительского) класса
$result = $this->store_rate_limit_response( $url, $response ): void;
$url(строка) (обязательный)
The request URL.
$response(HTTP_Response) (обязательный)
The parsed 429 response.

Код HTTP_Client::store_rate_limit_response() Yoast 28.3

private function store_rate_limit_response( string $url, HTTP_Response $response ): void {
	$headers     = $response->get_headers();
	$retry_after = ( $headers['retry-after'] ?? null );

	if ( \is_numeric( $retry_after ) ) {
		$backoff_seconds = (int) $retry_after;
	}
	else {
		$backoff_seconds = self::DEFAULT_BACKOFF_SECONDS;
	}

	$this->expiring_store->persist(
		$this->get_rate_limit_key( $url ),
		[
			'stored_at'       => \time(),
			'backoff_seconds' => $backoff_seconds,
			'status'          => $response->get_status(),
			'headers'         => $headers,
			'body'            => $response->get_body(),
		],
		$backoff_seconds,
	);
}