public function execute($client = null) { if ($client == null) { $client = new GuzzleClient(); } $url = $this->protocol . '://' . $this->hostname . $this->path; switch ($this->verb) { case 'get': $request = $client->get($url); break; case 'post': $request = $client->post($url); break; case 'put': $request = $client->put($url); break; case 'delete': $request = $client->delete($url); break; } return new Response($request->send()); }
/** * Write one data item * * @param array $item The data item with converted values * * @return $this */ public function writeItem(array $item) { // TODO: Implement writeItem() method. $project = $item["project"]; $summary = $item["summary"]; $description = $item["description"]; $jar = new FileCookieJar("cookies.json"); $client = new Client(); $cookie = $jar->all()[0]; $domain = $cookie->getDomain(); $path = $cookie->getPath(); $request = $client->put("http://" . $domain . $path . "/rest/issue", array(), ["project" => $project, "summary" => $summary, "description" => $description]); foreach ($jar->all() as $cookie) { $request->addCookie($cookie->getName(), $cookie->getValue()); } $response = $request->send(); if ($response->getStatusCode() == 201) { echo "Successfully created the issue [" . $summary . "].\n"; } else { echo "Something went wrong with [" . $summary . "]\n"; } }
/** * Send PUT request to API resource * * @param string $resource * @param array $params * @return array */ protected function sendPutRequest($resource, $params) { $client = new Client(); $request = $client->put($this->getServiceUrl($resource), array('Authorization' => $this->getOauthData(), 'Accept' => 'application/x-yametrika+json', 'Content-Type' => 'application/x-yametrika+json'), json_encode($params)); $response = $this->sendRequest($request)->json(); return $response; }
public static function dequeue($job, $data) { $callback_url = $data['callback_url']; $method = strtoupper($data['callback_method']); $payload = unserialize(base64_decode($data['callback_payload_base64'])); if (empty($callback_url)) { Log::warning('Empty callback URL'); return FALSE; } $client = new HttpClient(); if ($method == 'GET') { $request = $client->get($callback_url); } elseif ($method == 'POST') { $request = $client->post($callback_url, array(), $payload); } elseif ($method == 'PUT') { $request = $client->put($callback_url, array(), $payload); } elseif ($method == 'DELETE') { $request = $client->delete($callback_url); } elseif ($method == 'UPDATE') { $request = $client->update($callback_url); } elseif ($method == 'PATCH') { $request = $client->patch($callback_url); } else { QueuedHttpClient::logFailedCallback($job, $data, ['success' => false, 'message' => 'Unsupported method: ' . $method], 'hard'); return FALSE; } try { $response = $request->send(); if ($response->getStatusCode() != 200) { if ($job->attempts() > 60) { QueuedHttpClient::logFailedCallback($job, $data, $response, 'hard'); $job->delete(); } else { QueuedHttpClient::logFailedCallback($job, $data, $response, 'soft'); $job->release(60); } return $response; } // request probably successful, delete from queue $job->delete(); return $response; // these exceptions are broken out here because perhaps we want to // treat them differently in deciding whether to requeue or not } catch (CurlException $e) { // curl network and low-level exceptions QueuedHttpClient::retryLaterOrDelete($job, $data, get_class($e) . ": " . $e->getResponse(), 60, 60 * 24); // retry every minute for up to 24 hours } catch (Guzzle\Http\Exception\ClientErrorResponseException $e) { // server 4xx exceptions QueuedHttpClient::retryLaterOrDelete($job, $data, get_class($e) . ": " . $e->getResponse(), 60, 60); // retry every minute for up to an hour } catch (Guzzle\Http\Exception\ServerErrorResponseException $e) { // server 5xx exceptions QueuedHttpClient::retryLaterOrDelete($job, $data, get_class($e) . ": " . $e->getResponse(), 60, 60 * 24); // retry every minute for up to 24 hours } catch (Guzzle\Common\Exception\RuntimeException $e) { // result most likely wasn't in JSON format QueuedHttpClient::retryLaterOrDelete($job, $data, get_class($e) . ": " . $e->getMessage(), 60, 10); // retry every minute for up to ten minutes } catch (Exception $e) { // unknown other error QueuedHttpClient::retryLaterOrDelete($job, $data, get_class($e) . ": " . $e->getMessage(), 60, 60 * 24); // retry every minute for up to 24 hours } }