Bitpay\Client\Response::createFromRawResponse PHP Method

createFromRawResponse() public static method

public static createFromRawResponse ( $rawResponse )
    public static function createFromRawResponse($rawResponse)
    {
        $response = new self($rawResponse);
        $lines = preg_split('/(\\r?\\n)/', $rawResponse);
        $linesLen = count($lines);
        for ($i = 0; $i < $linesLen; $i++) {
            if (0 == $i) {
                preg_match('/^HTTP\\/(\\d\\.\\d)\\s(\\d+)\\s(.+)/', $lines[$i], $statusLine);
                $response->setStatusCode($statusCode = $statusLine[2]);
                continue;
            }
            if (empty($lines[$i])) {
                $body = array_slice($lines, $i + 1);
                $response->setBody(implode("\n", $body));
                break;
            }
            if (strpos($lines[$i], ':')) {
                $headerParts = explode(':', $lines[$i]);
                $response->setHeader($headerParts[0], $headerParts[1]);
            }
        }
        return $response;
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * @inheritdoc
  */
 public function sendRequest(\Bitpay\Client\Request $request)
 {
     $curl = curl_init();
     if ($curl === false) {
         throw new \Exception('[ERROR] In CurlAdapter::sendRequest(): Could not initialize cURL.');
     }
     $default_curl_options = $this->getCurlDefaultOptions($request);
     foreach ($this->getCurlOptions() as $curl_option_key => $curl_option_value) {
         if (is_null($curl_option_value) === false) {
             $default_curl_options[$curl_option_key] = $curl_option_value;
         }
     }
     curl_setopt_array($curl, $default_curl_options);
     if (RequestInterface::METHOD_POST == $request->getMethod()) {
         curl_setopt_array($curl, array(CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $request->getBody()));
     }
     $raw = curl_exec($curl);
     if ($raw === false) {
         $errorMessage = curl_error($curl);
         curl_close($curl);
         throw new \Exception('[ERROR] In CurlAdapter::sendRequest(): curl_exec failed with the error "' . $errorMessage . '".');
     }
     /** @var Response */
     $response = Response::createFromRawResponse($raw);
     curl_close($curl);
     return $response;
 }
All Usage Examples Of Bitpay\Client\Response::createFromRawResponse