public function send($method, $url, $payload = null)
    {
        $socket = @fsockopen($this->host, $this->port, $errno, $errstr);

        if (!$socket) {
            throw new RuntimeException($errno.': '.$errstr);
        }

        $request = sprintf(
          "%s %s HTTP/1.1\r\nHost: %s:%d\r\nContent-Type: application/json\r\nConnection: close\r\n",
          $method,
          $url,
          $this->host,
          $this->port
        );

        if ($payload !== null) {
            $request .= 'Content-Length: '.strlen($payload)."\r\n\r\n".
                        $payload;
        }

        $request .= "\r\n";

        // @codeCoverageIgnoreStart
        if ($this->debug) {
            echo $request;
        }
        // @codeCoverageIgnoreEnd

        fwrite($socket, $request);

        $buffer = '';

        while (!feof($socket)) {
            $buffer .= fgets($socket);
        }

        list($headers, $body) = explode("\r\n\r\n", $buffer);

        return ['headers' => $headers, 'body' => $body];
    }
public function send($method, $url, $payload = null)
    {
        $socket = @fsockopen($this->host, $this->port, $errno, $errstr);

        if (!$socket) {
            throw new RuntimeException($errno.': '.$errstr);
        }

        $request = sprintf(
          "%s %s HTTP/1.1\r\nHost: %s:%d\r\nContent-Type: application/json\r\nConnection: close\r\n",
          $method,
          $url,
          $this->host,
          $this->port
        );

        if ($payload !== null) {
            $request .= 'Content-Length: '.strlen($payload)."\r\n\r\n".
                        $payload;
        }

        $request .= "\r\n";

        // @codeCoverageIgnoreStart
        if ($this->debug) {
            echo $request;
        }
        // @codeCoverageIgnoreEnd

        fwrite($socket, $request);

        $buffer = '';

        while (!feof($socket)) {
            $buffer .= fgets($socket);
        }

        list($headers, $body) = explode("\r\n\r\n", $buffer);

        return ['headers' => $headers, 'body' => $body];
    }
public function send ( $ method , $ url , $ payload = null ) { $ socket = @ fsockopen ( $ this -> host , $ this -> port , $ errno , $ errstr ) ; if ( ! $ socket ) { throw new RuntimeException ( $ errno . ': ' . $ errstr ) ; } $ request = sprintf ( "%s %s HTTP/1.1\r\nHost: %s:%d\r\nContent-Type: application/json\r\nConnection: close\r\n" , $ method , $ url , $ this -> host , $ this -> port ) ; if ( $ payload !== null ) { $ request .= 'Content-Length: ' . strlen ( $ payload ) . "\r\n\r\n" . $ payload ; } $ request .= "\r\n" ; // @codeCoverageIgnoreStart if ( $ this -> debug ) { echo $ request ; } // @codeCoverageIgnoreEnd fwrite ( $ socket , $ request ) ; $ buffer = '' ; while ( ! feof ( $ socket ) ) { $ buffer .= fgets ( $ socket ) ; } list ( $ headers , $ body ) = explode ( "\r\n\r\n" , $ buffer ) ; return [ 'headers' => $ headers , 'body' => $ body ] ; }
Sends an HTTP request to the CouchDB server.

@param string $method
@param string $url
@param string $payload

@return array

@throws RuntimeException
Sends an HTTP request to the CouchDB server .