1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- /**
- * JPush Exception
- * User: xiezefan
- * Date: 15/12/18
- * Time: 下午3:14
- */
- class APIConnectionException extends Exception {
- public $isResponseTimeout;
- function __construct($message, $isResponseTimeout = false) {
- parent::__construct($message);
- $this->isResponseTimeout = $isResponseTimeout;
- }
- }
- class APIRequestException extends Exception {
- public $httpCode;
- public $code;
- public $message;
- public $response;
- public $rateLimitLimit;
- public $rateLimitRemaining;
- public $rateLimitReset;
- private static $expected_keys = array('code', 'message');
- function __construct($response){
- $this->response = $response['body'];
- $this->httpCode = $response['http_code'];
- $payload = json_decode($response['body'], true);
- if ($payload != null) {
- $error = $payload['error'];
- if (!is_null($error)) {
- foreach (self::$expected_keys as $key) {
- if (array_key_exists($key, $error)) {
- $this->$key = $error[$key];
- }
- }
- } else {
- foreach (self::$expected_keys as $key) {
- if (array_key_exists($key, $payload)) {
- $this->$key = $payload[$key];
- }
- }
- }
- }
- $headers = $response['headers'];
- if (is_array($headers)) {
- $this->rateLimitLimit = $headers['X-Rate-Limit-Limit'];
- $this->rateLimitRemaining = $headers['X-Rate-Limit-Remaining'];
- $this->rateLimitReset = $headers['X-Rate-Limit-Reset'];
- }
- }
- }
|