Yoast\WP\SEO\Wrappers

WP_Remote_Handler::__invoke()publicYoast 1.0

Calls the handler. Cookies are currently not supported as they are not used by OAuth. Writing responses to files is also not supported for the same reason.

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

Хуков нет.

Возвращает

PromiseInterface. The promise interface.

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

$WP_Remote_Handler = new WP_Remote_Handler();
$WP_Remote_Handler->__invoke( $request, $options );
$request(RequestInterface) (обязательный)
The request.
$options(массив) (обязательный)
The request options.

Код WP_Remote_Handler::__invoke() Yoast 22.4

public function __invoke( RequestInterface $request, array $options ) {
	$headers = [];
	foreach ( $request->getHeaders() as $name => $values ) {
		$headers[ $name ] = \implode( ',', $values );
	}

	$args = [
		'method'      => $request->getMethod(),
		'headers'     => $headers,
		'body'        => (string) $request->getBody(),
		'httpVersion' => $request->getProtocolVersion(),
	];

	if ( isset( $options['verify'] ) && $options['verify'] === false ) {
		$args['sslverify'] = false;
	}
	if ( isset( $options['timeout'] ) ) {
		$args['timeout'] = ( $options['timeout'] * 1000 );
	}

	$raw_response = \wp_remote_request( (string) $request->getUri(), $args );
	if ( \is_wp_error( $raw_response ) ) {
		$exception = new Exception( $raw_response->get_error_message() );
		return new RejectedPromise( $exception );
	}

	$response = new Response(
		$raw_response['response']['code'],
		$raw_response['headers']->getAll(),
		$raw_response['body'],
		$args['httpVersion'],
		$raw_response['response']['message']
	);

	return new FulfilledPromise( $response );
}