allows for an extra param to decode json objects into associative arrays
This commit is contained in:
Ahmad Nassri
2014-12-17 18:51:36 -05:00
parent e362fe01ec
commit 6e615557cc

View File

@@ -4,30 +4,30 @@ namespace Unirest;
class HttpResponse class HttpResponse
{ {
private $code; private $code;
private $raw_body; private $raw_body;
private $body; private $body;
private $headers; private $headers;
/** /**
* @param int $code response code of the cURL request * @param int $code response code of the cURL request
* @param string $raw_body the raw body of the cURL response * @param string $raw_body the raw body of the cURL response
* @param string $headers raw header string from cURL response * @param string $headers raw header string from cURL response
*/ */
public function __construct($code, $raw_body, $headers) public function __construct($code, $raw_body, $headers, $json_decode_assoc = false)
{ {
$this->code = $code; $this->code = $code;
$this->headers = $this->get_headers_from_curl_response($headers); $this->headers = $this->get_headers_from_curl_response($headers);
$this->raw_body = $raw_body; $this->raw_body = $raw_body;
$this->body = $raw_body; $this->body = $raw_body;
$json = json_decode($raw_body); $json = json_decode($raw_body, $json_decode_assoc);
if (json_last_error() == JSON_ERROR_NONE) { if (json_last_error() == JSON_ERROR_NONE) {
$this->body = $json; $this->body = $json;
} }
} }
/** /**
* Return a property of the response if it exists. * Return a property of the response if it exists.
* Possibilities include: code, raw_body, headers, body (if the response is json-decodable) * Possibilities include: code, raw_body, headers, body (if the response is json-decodable)
@@ -39,7 +39,7 @@ class HttpResponse
return $this->$property; return $this->$property;
} }
} }
/** /**
* Set the properties of this object * Set the properties of this object
* @param string $property the property name * @param string $property the property name
@@ -52,7 +52,7 @@ class HttpResponse
} }
return $this; return $this;
} }
/** /**
* Retrieve the cURL response headers from the * Retrieve the cURL response headers from the
* header string and convert it into an array * header string and convert it into an array
@@ -63,15 +63,15 @@ class HttpResponse
{ {
$headers = explode("\r\n", $headers); $headers = explode("\r\n", $headers);
array_shift($headers); array_shift($headers);
foreach ($headers as $line) { foreach ($headers as $line) {
if (strstr($line, ': ')) { if (strstr($line, ': ')) {
list($key, $value) = explode(': ', $line); list($key, $value) = explode(': ', $line);
$result[$key] = $value; $result[$key] = $value;
} }
} }
return $result; return $result;
} }
} }