深入了解WordPress HTTP API

在PHP中,有许多可能的方式来发送HTTP请求。示例包括file_get_contentsfsockopencURL

使用HTTP API发送请求

要使用WordPress HTTP API向Web服务或API发送或发出请求,以下帮助程序函数会派上用场。请注意,这些函数将在失败时返回WordPress WP_Error类。使用这些功能后,您必须检查它。

其他辅助函数处理检索响应的不同部分并为您执行WP_Error测试,这些使得API的使用非常简单并且是处理响应对象的首选方法。

wp_remote_get

使用GET方法从HTTP请求中检索原始响应。结果包括HTTP标头和内容。

使用示例

<?php $response = wp_remote_get( $url, $args ); ?>

默认用法

<?php 
global $wp_version;
$args = array(
'timeout' => 5,
'redirection' => 5,
'httpversion' => '1.0',
'user-agent'=> 'WordPress/' . $wp_version . '; ' . home_url(),
'blocking'=> true,
'headers' => array(),
'cookies' => array(),
'body'=> null,
'compress'=> false,
'decompress'=> true,
'sslverify' => true,
'stream'=> false,
'filename'=> null
); 
?>

返回值

$response = wp_remote_get( 'https://www.uedbox.com' );
if ( is_array( $response ) ) {
$header = $response['headers']; // 头数组
$body = $response['body']; // 获取body内容
}

返回的数据包含以下五个结构体

  • headers 标头包含请求和响应的HTTP标头字段。
  • body 是API服务器或Web服务发送的响应消息。
  • response 包含请求HTTP状态代码。
  • cookies 包含由Web服务或端点服务器设置的cookie(如果存在)。
  • filename 包含发送到API端点的文件的位置或路径。这可以通过例如POST请求来完成。

wp_remote_get和wp_remote_post其它两个使用方法大同小异。

参考:https://codex.wordpress.org/HTTP_API