如何在wordpress中存储和记录所有http请求和响应?

时间:2019-06-19 07:18:39

标签: wordpress logging

我想存储我的wordpress网站上所有传出的http请求。我想存储所有内部和外部的http请求,以及使用curl做出的响应。任何帮助都应该对我有用。

1 个答案:

答案 0 :(得分:0)

加入WP_Http::_dispatch_request()

function fn_log_http_request_response( $wp_http_response, $request, $url ) {
    $request = [
        'method' => $request['method'],
        'url' => $url,
        'headers' => $request['headers'],
        'body' => $request['body'],
    ];

    if($wp_http_response instanceof WP_Error) {
        $response = [
            'errors' => $wp_http_response->errors,
            'error_data' => $wp_http_response->error_data,
        ];
    } else {
        $response = [
            'status' => [
                'code' => wp_remote_retrieve_response_code($wp_http_response),
                'message' => wp_remote_retrieve_response_message($wp_http_response),
            ],
            'headers' => wp_remote_retrieve_headers($wp_http_response)->getAll(),
            'body' => wp_remote_retrieve_body($wp_http_response),
        ];
    }

    error_log(print_r([
        'request' => $request,
        'response' => $response,
    ], true));

    return $wp_http_response;
}

// hook into WP_Http::_dispatch_request()
add_filter('http_response', 'fn_help_log_http_requests', 10, 3 );

通过hinnerk-a