public function processAction(CRM_Civirules_TriggerData_TriggerData $triggerData) { //do the http post process $uri = $this->getFullUri($triggerData); $method = $this->getHttpMethod(); $body = http_build_query($this->getBodyParams($triggerData)); switch (strtolower($method)) { case 'post': $request = \Httpful\Request::post($uri, $body); break; case 'put': $request = \Httpful\Request::put($uri, $body); break; case 'delete': $request = \Httpful\Request::delete($uri); break; case 'head': $request = \Httpful\Request::head($uri); break; case 'patch': $request = \Httpful\Request::patch($uri, $body); break; case 'options': $request = \Httpful\Request::options($uri, $body); break; case 'get': $request = $response = \Httpful\Request::get($uri); break; default: throw new Exception('Invalid HTTP Method'); } $request->neverSerializePayload(); $request = $this->alterHttpRequestObject($request, $triggerData); $response = $request->send(); $this->handleResponse($response, $request, $triggerData); }
/** * Get http status code of url * @param string $url url to check * @return integer http status */ public function getHttpStatusCode($url) { $response = PHPHttpful::head($url)->send(); return $response->code; }
private function invoke($action, $uri, $headers, $method, $expects, $payload) { if ($this->fds_config->isMetricsEnabled()) { $request_metrics = new RequestMetrics($action); $request_metrics->startEvent(RequestMetrics::EXECUTION_TIME); } $request = null; switch ($method) { case Http::GET: $request = Request::get($uri); break; case Http::PUT: $request = Request::put($uri, $payload); break; case Http::POST: $request = Request::post($uri, $payload); break; case Http::DELETE: $request = Request::delete($uri); break; case Http::HEAD: $request = Request::head($uri); } if ($expects != null) { $request = $request->expects($expects); } $response = $request->addHeaders($headers)->retry($this->fds_config->getRetry())->timeout($this->fds_config->getConnectionTimeoutSecs())->send(); if ($this->fds_config->isMetricsEnabled()) { $request_metrics->endEvent(RequestMetrics::EXECUTION_TIME); $this->metrics_collector->collect($request_metrics); } return $response; }