发起 HTTP 请求,是再平常不过的需求了。一般的就是使用 file_get_contents 或者 cURL。
但是在 WordPress 中,使用 file_get_contents 或者 cURL 开发的主题或插件,都会被 WordPress 官方拒绝。因为,WordPress 官方已经提供了封装好的 HTTP 请求函数。之前也曾简单介绍过:WordPress 使用 wp_remote_get 和 wp_remote_post 替代 curl。
wp_remote_get 发起 GET 请求
使用举例:
$response = wp_remote_get( 'https://数据网址' );
if ( is_array( $response ) && ! is_wp_error( $response ) && $response['response']['code'] == '200' ) {
$headers = $response['headers']; // array of http header lines
$body = $response['body']; // use the content
}
在获取到 $body 后,要根据实际情况,对其进行解析。
wp_remote_post 发起 POST 请求
使用举例:
$response = wp_remote_post( $url, array(
'method' => 'POST',
'timeout' => 45,
'redirection' => 5,
'httpversion' => '1.0',
'blocking' => true,
'headers' => array(),
'body' => array(
'username' => 'bob',
'password' => '1234xyz'
),
'cookies' => array()
)
);
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
echo "Something went wrong: $error_message";
} else {
echo 'Response:<pre>';
print_r( $response );
echo '
';
}
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!