Exemple #1
0
 /**
  * Set request access_token query.
  */
 protected function attachAccessToken()
 {
     if (!$this->accessToken) {
         return;
     }
     // log
     $this->getHttp()->addMiddleware(function (callable $handler) {
         return function (RequestInterface $request, array $options) use($handler) {
             $field = $this->accessToken->getQueryName();
             $token = $this->accessToken->getToken();
             $request = $request->withUri(Uri::withQueryValue($request->getUri(), $field, $token));
             Log::debug("Request Token: {$token}");
             Log::debug('Request Uri: ' . $request->getUri());
             return $handler($request, $options);
         };
     });
     // retry
     $this->getHttp()->addMiddleware(Middleware::retry(function ($retries, RequestInterface $request, ResponseInterface $response = null, RequestException $exception = null) {
         // Limit the number of retries to 2
         if ($retries <= 2 && $response && ($body = $response->getBody())) {
             // Retry on server errors
             if (stripos($body, 'errcode') && (stripos($body, '40001') || stripos($body, '42001'))) {
                 return true;
             }
         }
         return false;
     }));
 }
 /**
  * Return retry middleware.
  *
  * @return \GuzzleHttp\RetryMiddleware
  */
 protected function retryMiddleware()
 {
     return Middleware::retry(function ($retries, RequestInterface $request, ResponseInterface $response = null, RequestException $exception = null) {
         // Limit the number of retries to 2
         if ($retries <= 2 && $response && ($body = $response->getBody())) {
             // Retry on server errors
             if (stripos($body, 'errcode') && (stripos($body, '40001') || stripos($body, '42001'))) {
                 $field = $this->accessToken->getQueryName();
                 $token = $this->accessToken->getToken();
                 $request = $request->withUri($newUri = Uri::withQueryValue($request->getUri(), $field, $token));
                 Log::debug("Retry with Request Token: {$token}");
                 Log::debug("Retry with Request Uri: {$newUri}");
                 return true;
             }
         }
         return false;
     });
 }