/** * Send request to any file * * @param string method * @param string url to send * @param mixed arguments to send */ public function sendRequest($method, $url, $args, $timeout = 15) { WPRC_Loader::includeWordpressHttp(); if (isset($args['request'])) { $body_array = array('action' => $args['action'], 'request' => serialize($args['request'])); } else { $body_array = array('action' => $args['action']); } // log $debug_msg = sprintf('SERVER REQUEST, method: %s, timeout: %d, uri: %s, args: %s', $method, $timeout, $url, print_r($args, true)); WPRC_Functions::log($debug_msg, 'server', 'server.log'); switch ($method) { case 'post': $request = wp_remote_post($url, array('timeout' => $timeout, 'body' => $body_array)); // log $debug_msg = sprintf('SERVER REQUEST, response: %s', print_r($request, true)); WPRC_Functions::log($debug_msg, 'server', 'server.log'); if (is_wp_error($request) || 200 != wp_remote_retrieve_response_code($request)) { // log if (is_wp_error($request)) { $debug_msg = sprintf('SERVER REQUEST, response error: %s', print_r($request->get_error_message(), true)); } else { $debug_msg = sprintf('SERVER REQUEST, response error code: %s', print_r(wp_remote_retrieve_response_code($request), true)); } WPRC_Functions::log($debug_msg, 'server', 'server.log'); // connection failed return false; } $res = @unserialize(wp_remote_retrieve_body($request)); if (false === $res) { $res = new WP_Error('repository_connector_error', __('An unknown error occurred.', 'installer'), wp_remote_retrieve_body($request)); // log $debug_msg = sprintf('SERVER REQUEST, response unknown error: %s', print_r(wp_remote_retrieve_body($request), true)); WPRC_Functions::log($debug_msg, 'server', 'server.log'); } break; } return $res; }