Edit File by line
/home/zeestwma/richards.../wp-inclu.../Requests/src
File: Response.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* HTTP response class
[2] Fix | Delete
*
[3] Fix | Delete
* Contains a response from \WpOrg\Requests\Requests::request()
[4] Fix | Delete
*
[5] Fix | Delete
* @package Requests
[6] Fix | Delete
*/
[7] Fix | Delete
[8] Fix | Delete
namespace WpOrg\Requests;
[9] Fix | Delete
[10] Fix | Delete
use WpOrg\Requests\Cookie\Jar;
[11] Fix | Delete
use WpOrg\Requests\Exception;
[12] Fix | Delete
use WpOrg\Requests\Exception\Http;
[13] Fix | Delete
use WpOrg\Requests\Response\Headers;
[14] Fix | Delete
[15] Fix | Delete
/**
[16] Fix | Delete
* HTTP response class
[17] Fix | Delete
*
[18] Fix | Delete
* Contains a response from \WpOrg\Requests\Requests::request()
[19] Fix | Delete
*
[20] Fix | Delete
* @package Requests
[21] Fix | Delete
*/
[22] Fix | Delete
class Response {
[23] Fix | Delete
[24] Fix | Delete
/**
[25] Fix | Delete
* Response body
[26] Fix | Delete
*
[27] Fix | Delete
* @var string
[28] Fix | Delete
*/
[29] Fix | Delete
public $body = '';
[30] Fix | Delete
[31] Fix | Delete
/**
[32] Fix | Delete
* Raw HTTP data from the transport
[33] Fix | Delete
*
[34] Fix | Delete
* @var string
[35] Fix | Delete
*/
[36] Fix | Delete
public $raw = '';
[37] Fix | Delete
[38] Fix | Delete
/**
[39] Fix | Delete
* Headers, as an associative array
[40] Fix | Delete
*
[41] Fix | Delete
* @var \WpOrg\Requests\Response\Headers Array-like object representing headers
[42] Fix | Delete
*/
[43] Fix | Delete
public $headers = [];
[44] Fix | Delete
[45] Fix | Delete
/**
[46] Fix | Delete
* Status code, false if non-blocking
[47] Fix | Delete
*
[48] Fix | Delete
* @var integer|boolean
[49] Fix | Delete
*/
[50] Fix | Delete
public $status_code = false;
[51] Fix | Delete
[52] Fix | Delete
/**
[53] Fix | Delete
* Protocol version, false if non-blocking
[54] Fix | Delete
*
[55] Fix | Delete
* @var float|boolean
[56] Fix | Delete
*/
[57] Fix | Delete
public $protocol_version = false;
[58] Fix | Delete
[59] Fix | Delete
/**
[60] Fix | Delete
* Whether the request succeeded or not
[61] Fix | Delete
*
[62] Fix | Delete
* @var boolean
[63] Fix | Delete
*/
[64] Fix | Delete
public $success = false;
[65] Fix | Delete
[66] Fix | Delete
/**
[67] Fix | Delete
* Number of redirects the request used
[68] Fix | Delete
*
[69] Fix | Delete
* @var integer
[70] Fix | Delete
*/
[71] Fix | Delete
public $redirects = 0;
[72] Fix | Delete
[73] Fix | Delete
/**
[74] Fix | Delete
* URL requested
[75] Fix | Delete
*
[76] Fix | Delete
* @var string
[77] Fix | Delete
*/
[78] Fix | Delete
public $url = '';
[79] Fix | Delete
[80] Fix | Delete
/**
[81] Fix | Delete
* Previous requests (from redirects)
[82] Fix | Delete
*
[83] Fix | Delete
* @var array Array of \WpOrg\Requests\Response objects
[84] Fix | Delete
*/
[85] Fix | Delete
public $history = [];
[86] Fix | Delete
[87] Fix | Delete
/**
[88] Fix | Delete
* Cookies from the request
[89] Fix | Delete
*
[90] Fix | Delete
* @var \WpOrg\Requests\Cookie\Jar Array-like object representing a cookie jar
[91] Fix | Delete
*/
[92] Fix | Delete
public $cookies = [];
[93] Fix | Delete
[94] Fix | Delete
/**
[95] Fix | Delete
* Constructor
[96] Fix | Delete
*/
[97] Fix | Delete
public function __construct() {
[98] Fix | Delete
$this->headers = new Headers();
[99] Fix | Delete
$this->cookies = new Jar();
[100] Fix | Delete
}
[101] Fix | Delete
[102] Fix | Delete
/**
[103] Fix | Delete
* Is the response a redirect?
[104] Fix | Delete
*
[105] Fix | Delete
* @return boolean True if redirect (3xx status), false if not.
[106] Fix | Delete
*/
[107] Fix | Delete
public function is_redirect() {
[108] Fix | Delete
$code = $this->status_code;
[109] Fix | Delete
return in_array($code, [300, 301, 302, 303, 307], true) || $code > 307 && $code < 400;
[110] Fix | Delete
}
[111] Fix | Delete
[112] Fix | Delete
/**
[113] Fix | Delete
* Throws an exception if the request was not successful
[114] Fix | Delete
*
[115] Fix | Delete
* @param boolean $allow_redirects Set to false to throw on a 3xx as well
[116] Fix | Delete
*
[117] Fix | Delete
* @throws \WpOrg\Requests\Exception If `$allow_redirects` is false, and code is 3xx (`response.no_redirects`)
[118] Fix | Delete
* @throws \WpOrg\Requests\Exception\Http On non-successful status code. Exception class corresponds to "Status" + code (e.g. {@see \WpOrg\Requests\Exception\Http\Status404})
[119] Fix | Delete
*/
[120] Fix | Delete
public function throw_for_status($allow_redirects = true) {
[121] Fix | Delete
if ($this->is_redirect()) {
[122] Fix | Delete
if ($allow_redirects !== true) {
[123] Fix | Delete
throw new Exception('Redirection not allowed', 'response.no_redirects', $this);
[124] Fix | Delete
}
[125] Fix | Delete
} elseif (!$this->success) {
[126] Fix | Delete
$exception = Http::get_class($this->status_code);
[127] Fix | Delete
throw new $exception(null, $this);
[128] Fix | Delete
}
[129] Fix | Delete
}
[130] Fix | Delete
[131] Fix | Delete
/**
[132] Fix | Delete
* JSON decode the response body.
[133] Fix | Delete
*
[134] Fix | Delete
* The method parameters are the same as those for the PHP native `json_decode()` function.
[135] Fix | Delete
*
[136] Fix | Delete
* @link https://php.net/json-decode
[137] Fix | Delete
*
[138] Fix | Delete
* @param bool|null $associative Optional. When `true`, JSON objects will be returned as associative arrays;
[139] Fix | Delete
* When `false`, JSON objects will be returned as objects.
[140] Fix | Delete
* When `null`, JSON objects will be returned as associative arrays
[141] Fix | Delete
* or objects depending on whether `JSON_OBJECT_AS_ARRAY` is set in the flags.
[142] Fix | Delete
* Defaults to `true` (in contrast to the PHP native default of `null`).
[143] Fix | Delete
* @param int $depth Optional. Maximum nesting depth of the structure being decoded.
[144] Fix | Delete
* Defaults to `512`.
[145] Fix | Delete
* @param int $options Optional. Bitmask of JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE,
[146] Fix | Delete
* JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR.
[147] Fix | Delete
* Defaults to `0` (no options set).
[148] Fix | Delete
*
[149] Fix | Delete
* @return array
[150] Fix | Delete
*
[151] Fix | Delete
* @throws \WpOrg\Requests\Exception If `$this->body` is not valid json.
[152] Fix | Delete
*/
[153] Fix | Delete
public function decode_body($associative = true, $depth = 512, $options = 0) {
[154] Fix | Delete
$data = json_decode($this->body, $associative, $depth, $options);
[155] Fix | Delete
[156] Fix | Delete
if (json_last_error() !== JSON_ERROR_NONE) {
[157] Fix | Delete
$last_error = json_last_error_msg();
[158] Fix | Delete
throw new Exception('Unable to parse JSON data: ' . $last_error, 'response.invalid', $this);
[159] Fix | Delete
}
[160] Fix | Delete
[161] Fix | Delete
return $data;
[162] Fix | Delete
}
[163] Fix | Delete
}
[164] Fix | Delete
[165] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function