yii\httpclient\CurlTransport::send PHP Method

send() public method

public send ( $request )
    public function send($request)
    {
        $request->beforeSend();
        $curlOptions = $this->prepare($request);
        $curlResource = $this->initCurl($curlOptions);
        $responseHeaders = [];
        $this->setHeaderOutput($curlResource, $responseHeaders);
        $token = $request->client->createRequestLogToken($request->getMethod(), $curlOptions[CURLOPT_URL], $curlOptions[CURLOPT_HTTPHEADER], $request->getContent());
        Yii::info($token, __METHOD__);
        Yii::beginProfile($token, __METHOD__);
        try {
            $responseContent = curl_exec($curlResource);
        } catch (\Exception $e) {
            Yii::endProfile($token, __METHOD__);
            throw new Exception($e->getMessage(), $e->getCode(), $e);
        }
        Yii::endProfile($token, __METHOD__);
        // check cURL error
        $errorNumber = curl_errno($curlResource);
        $errorMessage = curl_error($curlResource);
        curl_close($curlResource);
        if ($errorNumber > 0) {
            throw new Exception('Curl error: #' . $errorNumber . ' - ' . $errorMessage);
        }
        $response = $request->client->createResponse($responseContent, $responseHeaders);
        $request->afterSend($response);
        return $response;
    }