1. 什么是 WordPress HTTP API?
WordPress HTTP API 是一个在许多 WordPress 插件和主题中使用的 HTTP 请求和响应的组件。它允许我们通过多种协议与各种网络服务进行交互。这些协议包括常用的 GET、POST、PUT、DELETE 和 HEAD 方法。
2. 了解 wp_remote_get()
wp_remote_get() 是 WordPress HTTP API 中最常用的函数之一。它允许我们从远程 URL 获取响应,并将响应作为数组返回。如果请求失败,则返回 WP_Error 对象。
2.1 wp_remote_get() 的参数
wp_remote_get() 接受三个参数:
$url:需要获取响应的 URL。
$args:一个包含请求参数和选项的数组。
$response_code:一个指向变量的指针,用于存储响应状态码。
下面是一个使用 wp_remote_get() 函数获取远程 URL 响应的简单示例:
$url = 'https://jsonplaceholder.typicode.com/posts';
$response = wp_remote_get( $url );
$data = wp_remote_retrieve_body( $response );
2.2 $args 参数选项
在 $args 数组中,我们可以提供各种选项来自定义请求。这些选项包括:
'timeout':请求的超时时间(秒)。默认为 5 秒。
'user-agent':设置用户代理标头。
'headers':要包含在请求中的其他标头。
'body':POST 请求时提交的数据。
'data_format':POST 请求时要使用的数据编码格式('body' 或 'json')。默认为 'body'。
'sslverify':是否验证 SSL 证书。默认为 true。
'blocking':是否将请求设置为阻塞模式。默认为 true。
2.3 响应
wp_remote_get() 返回的响应数组包括以下键:
'headers':包含响应标头的关联数组。
'body':响应正文的字符串。
'response':包含响应信息的关联数组,如版本号、状态码和状态消息。
'cookies':包含与响应关联的 cookie 的关联数组。
'filename':如果保存了响应正文,则存储该正文的文件名。
以下是使用 wp_remote_get() 获取响应后,如何检查响应状态码和响应正文的示例:
$url = 'https://jsonplaceholder.typicode.com/posts';
$response = wp_remote_get( $url );
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
echo "Something went wrong: $error_message";
} else {
$response_code = wp_remote_retrieve_response_code( $response );
$response_body = wp_remote_retrieve_body( $response );
echo "Response code: $response_code";
echo "Response body: $response_body";
}
3. 结论
在本文中,我们已经了解了 WordPress HTTP API 的基础知识以及 wp_remote_get() 函数的用法。现在,您可以使用此函数从远程 URL 获取响应,并在仅几行代码中处理响应。