发起 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请求
函数 wo_remote_post 返回的结果(wp_remote_get的结果也一样)如下:
- ‘headers’ (string[]) 响应头信息。
- ‘body’ (string) 响应体。
- ‘response’ (array) HTTP 相关的相应数据。
- ‘code’ (int|false) HTTP CODE。
- ‘message’ (string|false) HTTP 相应消息。
- ‘cookies’ (WP_HTTP_Cookie[]) cookies 信息。
- ‘http_response’ (WP_HTTP_Requests_Response|null) 原始的 HTTP 相应。
使用举例:
$url = 'https://api.baidu.com/v1/estates/list';$body = array(
'Filter' => array( 'languageId' => 'nl-BE'),
);$args = array(
'headers' => array(
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json'
),
'body' => json_encode($body);//转为json(也可以直接传json格式的数据,这里就不用再转JSON了)
);$response = wp_remote_post($url,$args);$content_obj = json_decode($response[body]); #JSON内容转换为PHP对象
//$datadx = json_decode($data2);//可以将JSON格式的字符串转为数组,然后再输出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 '</pre>';
}
版权声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
免责声明: 本网站所发布的一切资源均来自于会员发布以及互联网收集,不代表本站立场,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则一切后果请用户自负;依据WordPress GPL开源许可协议分享,如有侵犯到您的权益,请联系我们。
免责声明: 本网站所发布的一切资源均来自于会员发布以及互联网收集,不代表本站立场,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则一切后果请用户自负;依据WordPress GPL开源许可协议分享,如有侵犯到您的权益,请联系我们。