/**
  * @see ClientInterface
  *
  * @throws ClientException If file_get_contents() fires an error
  */
 public function send(RequestInterface $request, MessageInterface $response)
 {
     $context = stream_context_create($this->getStreamContextArray($request));
     $url = $request->getHost() . $request->getResource();
     $level = error_reporting(0);
     $content = file_get_contents($url, 0, $context);
     error_reporting($level);
     if (false === $content) {
         $error = error_get_last();
         $e = new RequestException($error['message']);
         $e->setRequest($request);
         throw $e;
     }
     $response->setHeaders($this->filterHeaders((array) $http_response_header));
     $response->setContent($content);
 }
Пример #2
0
 public function send(RequestInterface $request, MessageInterface $response, array $options = array())
 {
     if (is_resource($this->lastCurl)) {
         curl_close($this->lastCurl);
     }
     $this->lastCurl = static::createCurlHandle();
     $this->prepare($this->lastCurl, $request, $options);
     $data = curl_exec($this->lastCurl);
     if (false === $data) {
         $errorMsg = curl_error($this->lastCurl);
         $errorNo = curl_errno($this->lastCurl);
         $e = new RequestException($errorMsg, $errorNo);
         $e->setRequest($request);
         throw $e;
     }
     static::populateResponse($this->lastCurl, $data, $response);
 }
Пример #3
0
 /**
  * @parem string  $controller
  * @param Request $request
  * @param array   $qs
  *
  * @throws RequestException
  *
  * @return JsonResponse
  */
 protected function doRequest($controller, Request $request, array $qs = array())
 {
     $request->fromUrl($this->getApiEndpoint($controller) . '?' . http_build_query($qs));
     $request->addHeader('Authorization: Basic ' . $this->options['key']);
     $request->addHeader('Accept: text/json');
     $this->client->send($request, $response = new JsonResponse());
     $content = $response->getContentJson(true);
     if (!in_array($content['ReturnCode'], array(self::EXECCODE_SUCCESS, self::EXECCODE_OPERATION_REFUSED))) {
         $e = new RequestException(print_r(array_merge($content, array('url' => $request->getUrl(), 'content' => $request->getContent())), true));
         $e->setRequest($request);
         throw $e;
     }
     return $response;
 }