コード例 #1
0
ファイル: MultiAdapter.php プロジェクト: puzzlehttp/puzzle
 private function validateResponseWasSet(puzzle_adapter_TransactionInterface $transaction, puzzle_adapter_curl_BatchContext $context)
 {
     if ($transaction->getResponse()) {
         return true;
     }
     $body = $transaction->getRequest()->getBody();
     if (!$body) {
         // This is weird and should probably never happen.
         puzzle_event_RequestEvents::emitError($transaction, new puzzle_exception_RequestException('No response was received for a request with no body. This' . ' could mean that you are saturating your network.', $transaction->getRequest()));
     } elseif (!$body->isSeekable() || !$body->seek(0)) {
         // Nothing we can do with this. Sorry!
         puzzle_event_RequestEvents::emitError($transaction, new puzzle_exception_RequestException('The connection was unexpectedly closed. The request would' . ' have been retried, but attempting to rewind the' . ' request body failed. Consider wrapping your request' . ' body in a CachingStream decorator to work around this' . ' issue if necessary.', $transaction->getRequest()));
     } else {
         $this->retryFailedConnection($transaction, $context);
     }
     return false;
 }
コード例 #2
0
ファイル: CurlAdapter.php プロジェクト: puzzlehttp/puzzle
 private function handleError(puzzle_adapter_TransactionInterface $transaction, $info, $handle)
 {
     $error = curl_error($handle);
     $this->releaseEasyHandle($handle);
     puzzle_event_RequestEvents::emitError($transaction, new puzzle_exception_AdapterException("cURL error {$info['curl_result']}: {$error}"), $info);
 }