Exemple #1
0
 /**
  * Send request and return response data.
  *
  * @param string $method
  * @param string $path
  * @param array $data the parameters for the request. For GET/DELETE this is the query string
  *        for POST/PUT this is the body
  * @param array $options passed to request and socket
  * @return string
  */
 public function send($method, $path = null, $data = array(), array $options = array())
 {
     $defaults = array('return' => 'body');
     $options += $defaults;
     $request = $this->_request($method, $path, $data, $options);
     $options += array('message' => $request);
     if (!$this->connection || !$this->connection->open($options)) {
         return;
     }
     $response = $this->connection->send($request, $options);
     $this->connection->close();
     $this->last = (object) compact('request', 'response');
     return $options['return'] == 'body' && $response ? $response->body() : $response;
 }
Exemple #2
0
 /**
  * Send request and return response data. Will open the connection if
  * needed and always close it after sending the request.
  *
  * Will automatically authenticate when receiving a `401` HTTP status code
  * then continue retrying sending initial request.
  *
  * @param string $method
  * @param string $path
  * @param array $data the parameters for the request. For GET/DELETE this is the query string
  *        for POST/PUT this is the body
  * @param array $options passed to request and socket
  * @return string
  */
 public function send($method, $path = null, $data = array(), array $options = array())
 {
     $defaults = array('return' => 'body');
     $options += $defaults;
     $request = $this->_request($method, $path, $data, $options);
     $options += array('message' => $request);
     if (!$this->connection || !$this->connection->open($options)) {
         return;
     }
     $response = $this->connection->send($request, $options);
     $this->connection->close();
     if ($response->status['code'] == 401 && ($auth = $response->digest())) {
         $request->auth = $auth;
         $this->connection->open(array('message' => $request) + $options);
         $response = $this->connection->send($request, $options);
         $this->connection->close();
     }
     $this->last = (object) compact('request', 'response');
     $handlers = $this->_responseTypes;
     $handler = isset($handlers[$options['return']]) ? $handlers[$options['return']] : null;
     return $handler ? $handler($response) : $response;
 }
Exemple #3
0
 public function disconnect()
 {
     return $this->connection->close();
 }