如何从WP_HTTP对象获取URL?

时间:2016-12-20 作者:ravravrav

我正在使用wp\\u remote\\u post:

    $test = wp_remote_post($environment_url, $args2 );
    $test2 = $test[\'http_response\'];
所以我想做的是获取URL的值,但我相信对象是受保护的,所以很难获取它。

答案可能就在这里

https://developer.wordpress.org/reference/classes/wp_http_requests_response/

但我需要帮助找到它。

下面是$test2的输出:

WP_HTTP_Requests_Response Object
(
[response:protected] => Requests_Response Object
    (
        [body] => ...
        [raw] => HTTP/1.1 200 OK
                 Cache-Control: no-cache, no-store

        [headers] => Requests_Response_Headers Object
            (
                [data:protected] => Array
                    (
                        [cache-control] => Array
                            (
                                [0] => no-cache, no-store
                            )
                            ...
                    )

            )

        [status_code] => 200
        [protocol_version] => 1.1
        [success] => 1
        [redirects] => 1
        [url] => https://www.example.com
        [history] => Array

1 个回复
最合适的回答,由SO网友:birgire 整理而成

我不确定您在这里想要什么,但您可以尝试从WP_HTTP_Requests_Response::get_response_object() 方法

以下是检索url的示例:

if( 
       ! is_wp_error( $test )
    && isset( $test[\'http_response\'] ) 
    && $test[\'http_response\'] instanceof \\WP_HTTP_Requests_Response 
    && method_exists( $test[\'http_response\'], \'get_response_object\' )
)
    echo $test[\'http_response\']->get_response_object()->url;