PluginProbe
PhastPress / 3.7
PhastPress v3.7
3.12 3.11 1.75 1.76 1.77 1.78 1.79 1.80 1.81 1.82 1.83 1.84 1.85 1.86 1.87 1.88 1.89 1.90 1.91 1.92 1.93 1.94 1.95 1.96 1.97 All 119 releases
phastpress / classes / RequestsHTTPClient.php

RequestsHTTPClient.php in PhastPress 3.7, at classes/RequestsHTTPClient.php

33 lines 1.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Kibo\PhastPlugins\PhastPress;
3
4 use Kibo\Phast\HTTP\Client;
5 use Kibo\Phast\HTTP\Exceptions\NetworkError;
6 use Kibo\Phast\HTTP\Response;
7 use Kibo\Phast\ValueObjects\URL;
8 use WpOrg\Requests\{Requests, Response as RequestsResponse};
9
10 class RequestsHTTPClient implements Client {
11 public function get(URL $url, array $headers = []): Response {
12 $response = Requests::get((string) $url, $headers);
13 $response->throw_for_status();
14 return $this->makePhastResponse($response);
15 }
16
17 public function post(URL $url, $data, array $headers = []): Response {
18 $options = ['connect_timeout' => 10, 'timeout' => 20];
19 $response = Requests::post((string) $url, $headers, $data, $options);
20 $response->throw_for_status();
21 return $this->makePhastResponse($response);
22 }
23
24 private function makePhastResponse(RequestsResponse $requestsResponse): Response {
25 $phastResponse = new Response();
26 $phastResponse->setContent($requestsResponse->body);
27 foreach ($requestsResponse->headers as $name => $value) {
28 $phastResponse->setHeader($name, $value);
29 }
30 return $phastResponse;
31 }
32 }
33