深入了解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标头和内容。
使用示例
1 |
<?php $response = wp_remote_get( $url, $args ); ?> |
默认用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?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 ); ?> |
返回值
1 2 3 4 5 |
$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
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。