PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.0.0
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.0.0
4.11.2 4.11.1 4.11.0 4.10.0 4.9.5 4.9.4 4.9.3 4.9.2 4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / Framework / Traits / HttpRequestTrait.php
wp-staging / Framework / Traits Last commit date
ApplyFiltersTrait.php 1 year ago ArrayableTrait.php 1 year ago BenchmarkTrait.php 3 years ago BooleanTransientTrait.php 5 years ago DatabaseSearchReplaceTrait.php 1 year ago DbRowsGeneratorTrait.php 4 years ago DebugLogTrait.php 1 year ago DeveloperTimerTrait.php 4 years ago EndOfLinePlaceholderTrait.php 1 year ago EventLoggerTrait.php 1 year ago FileScanToCacheTrait.php 2 years ago FormatTrait.php 1 year ago HttpRequestTrait.php 1 year ago HydrateTrait.php 1 year ago I18nTrait.php 1 year ago MaintenanceTrait.php 5 years ago MemoryExhaustTrait.php 2 years ago MySQLRowsGeneratorTrait.php 1 year ago NoticesTrait.php 1 year ago PropertyConstructor.php 5 years ago ResourceTrait.php 2 years ago RestoreFileExclusionTrait.php 1 year ago SerializeTrait.php 1 year ago SlashTrait.php 1 year ago UrlTrait.php 1 year ago ValueGetterTrait.php 2 years ago WindowsOsTrait.php 1 year ago
HttpRequestTrait.php
45 lines
1 <?php
2
3 namespace WPStaging\Framework\Traits;
4
5 use WPStaging\Backup\Exceptions\StorageException;
6
7 trait HttpRequestTrait
8 {
9 /**
10 * @param string $url.
11 * @param array $args Optional. Request arguments. Default empty array.
12 * See https://developer.wordpress.org/reference/classes/WP_Http/request/ for information on accepted arguments.
13 * @param bool $decodeBody Optional. If true the body will be decoded using json_decode.
14 *
15 * @throws StorageException
16 * @return mixed
17 */
18 protected function getRequestBody(string $url, array $args = [], bool $decodeBody = true)
19 {
20 $defaults = [
21 'timeout' => 40,
22 'httpversion' => '1.0',
23 'sslverify' => false,
24 'method' => 'GET'
25 ];
26 $args = wp_parse_args($args, $defaults);
27 $response = wp_remote_request($url, $args);
28 $responseCode = wp_remote_retrieve_response_code($response);
29 $body = wp_remote_retrieve_body($response);
30
31 if (is_wp_error($response) || !in_array($responseCode, [200, 201, 202, 204, 206, 302])) {
32 $errorMessage = is_wp_error($response) ? $response->get_error_message() : $body;
33 $this->error = $errorMessage;
34
35 throw new StorageException("Error in remote request! Url: $url; Error Message: $errorMessage");
36 }
37
38 if ($decodeBody) {
39 return json_decode($body, true);
40 }
41
42 return $body;
43 }
44 }
45