| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | 
							- <?php
 
- namespace Qiniu\Pili;
 
- class HttpResponse
 
- {
 
-     private $code;
 
-     private $raw_body;
 
-     private $body;
 
-     private $headers;
 
-     /**
 
-      * @param int $code response code of the cURL request
 
-      * @param string $raw_body the raw body of the cURL response
 
-      * @param string $headers raw header string from cURL response
 
-      */
 
-     public function __construct($code, $raw_body, $headers)
 
-     {
 
-         $this->code     = $code;
 
-         $this->headers  = $this->get_headers_from_curl_response($headers);
 
-         $this->raw_body = $raw_body;
 
-         $this->body     = $raw_body;
 
-         $json           = json_decode($raw_body, true);
 
-         if (json_last_error() == JSON_ERROR_NONE) {
 
-             $this->body = $json;
 
-         }
 
-     }
 
-     /**
 
-      * Return a property of the response if it exists.
 
-      * Possibilities include: code, raw_body, headers, body (if the response is json-decodable)
 
-      * @return mixed
 
-      */
 
-     public function __get($property)
 
-     {
 
-         if (property_exists($this, $property)) {
 
-             return $this->$property;
 
-         }
 
-     }
 
-     /**
 
-      * Set the properties of this object
 
-      * @param string $property the property name
 
-      * @param mixed $value the property value
 
-      */
 
-     public function __set($property, $value)
 
-     {
 
-         if (property_exists($this, $property)) {
 
-             $this->$property = $value;
 
-         }
 
-         return $this;
 
-     }
 
-     /**
 
-      * Retrieve the cURL response headers from the
 
-      * header string and convert it into an array
 
-      * @param  string $headers header string from cURL response
 
-      * @return array
 
-      */
 
-     private function get_headers_from_curl_response($headers)
 
-     {
 
-         $headers = explode("\r\n", $headers);
 
-         array_shift($headers);
 
-         foreach ($headers as $line) {
 
-             if (strstr($line, ': ')) {
 
-                 list($key, $value) = explode(': ', $line);
 
-                 $result[$key] = $value;
 
-             }
 
-         }
 
-         return $result;
 
-     }
 
- }
 
 
  |