深入了解WordPress HTTP API
- 发表于
- WordPress
在PHP中,有许多可能的方式来发送HTTP请求。示例包括file_get_contents,fsockopen和cURL。
使用HTTP API发送请求
要使用WordPress HTTP API向Web服务或API发送或发出请求,以下帮助程序函数会派上用场。请注意,这些函数将在失败时返回WordPress WP_Error类。使用这些功能后,您必须检查它。
- wp_remote_get() - 使用GET HTTP方法请求URL
- wp_remote_post() - 使用POST HTTP方法请求URL
- wp_remote_head() - 使用HEAD HTTP方法请求URL
- wp_remote_request() -使用您指定的默认GET或自定义HTTP方法(应该是大写)请求URL,GET,POST,HEAD,PUT还是DELETE。
其他辅助函数处理检索响应的不同部分并为您执行WP_Error测试,这些使得API的使用非常简单并且是处理响应对象的首选方法。
- wp_remote_retrieve_body() - 仅从响应中检索正文。
- wp_remote_retrieve_header() - 根据响应中的名称为您提供单个HTTP标头。
- wp_remote_retrieve_headers() - 返回数组中的所有HTTP头以进行处理。
- wp_remote_retrieve_response_code() - 为您提供HTTP响应的编号。这应该是200,但失败时可能是4xx甚至3xx。
- wp_remote_retrieve_response_message() - 根据响应代码返回响应消息。
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其它两个使用方法大同小异。
原文连接:深入了解WordPress HTTP API
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。