function testGetHttps_invalid_noVerify() { $result = civicrm_api('Setting', 'create', array('version' => 3, 'verifySSL' => FALSE)); $this->assertAPISuccess($result); list($status, $data) = $this->client->get(self::SELF_SIGNED_HTTPS_URL); $this->assertEquals(CRM_Utils_HttpClient::STATUS_OK, $status); $this->assertRegExp(self::SELF_SIGNED_HTTPS_REGEX, $data); }
/** * Download document from URL and parse as JSON. * * @return NULL|array * parsed JSON */ public function fetchDocument() { list($status, $json) = $this->client->get($this->getRenderedUrl()); if ($status != CRM_Utils_HttpClient::STATUS_OK || empty($json)) { return NULL; } $doc = json_decode($json, TRUE); if (empty($doc) || json_last_error() != JSON_ERROR_NONE) { return NULL; } return $doc; }
/** * Parse rss feed and cache results. * * @param $url * * @return array|NULL * array of blog items; or NULL if not available */ public function _getFeed($url) { $httpClient = new CRM_Utils_HttpClient(self::CHECK_TIMEOUT); list($status, $rawFeed) = $httpClient->get($url); if ($status !== CRM_Utils_HttpClient::STATUS_OK) { return NULL; } $feed = @simplexml_load_string($rawFeed); $blog = array(); if ($feed && !empty($feed->channel->item)) { foreach ($feed->channel->item as $item) { $item = (array) $item; // Clean up description - remove tags that would break dashboard layout $description = preg_replace('#<h[1-3][^>]*>(.+?)</h[1-3][^>]*>#s', '<h4>$1</h4>', $item['description']); $item['description'] = strip_tags($description, "<a><p><h4><h5><h6><b><i><em><strong><ol><ul><li><dd><dt><code><pre><br/>"); $blog[] = $item; } if ($blog) { CRM_Core_BAO_Cache::setItem($blog, 'dashboard', 'blog'); } } return $blog; }
/** * Get html and cache results. * * @param $url * * @return array|NULL * array of gettingStarted items; or NULL if not available */ public function _getHtml($url) { $httpClient = new CRM_Utils_HttpClient(self::CHECK_TIMEOUT); list($status, $html) = $httpClient->get($url); if ($status !== CRM_Utils_HttpClient::STATUS_OK) { return NULL; } $tokensList = CRM_Utils_Token::getTokens($html); $this->replaceLinkToken($tokensList, $html); if ($html) { CRM_Core_BAO_Cache::setItem($html, 'dashboard', 'gettingStarted'); } return $html; }
/** * Parse a single rss feed. * * @param $url * * @return array|NULL * array of blog items; or NULL if not available */ protected function getFeed($url) { $httpClient = new CRM_Utils_HttpClient(self::CHECK_TIMEOUT); list($status, $rawFeed) = $httpClient->get($url); if ($status !== CRM_Utils_HttpClient::STATUS_OK) { return NULL; } return @simplexml_load_string($rawFeed); }