yii\httpclient\StreamTransport::send PHP Method

send() public method

public send ( $request )
    public function send($request)
    {
        $request->beforeSend();
        $request->prepare();
        $url = $request->getFullUrl();
        $method = strtoupper($request->getMethod());
        $contextOptions = ['http' => ['method' => $method, 'ignore_errors' => true], 'ssl' => ['verify_peer' => false]];
        $content = $request->getContent();
        if ($content !== null) {
            $contextOptions['http']['content'] = $content;
        }
        $headers = $request->composeHeaderLines();
        $contextOptions['http']['header'] = $headers;
        $contextOptions = ArrayHelper::merge($contextOptions, $this->composeContextOptions($request->getOptions()));
        $token = $request->client->createRequestLogToken($method, $url, $headers, $content);
        Yii::info($token, __METHOD__);
        Yii::beginProfile($token, __METHOD__);
        try {
            $context = stream_context_create($contextOptions);
            $stream = fopen($url, 'rb', false, $context);
            $responseContent = stream_get_contents($stream);
            // see http://php.net/manual/en/reserved.variables.httpresponseheader.php
            $responseHeaders = $http_response_header;
            fclose($stream);
        } catch (\Exception $e) {
            Yii::endProfile($token, __METHOD__);
            throw new Exception($e->getMessage(), $e->getCode(), $e);
        }
        Yii::endProfile($token, __METHOD__);
        $response = $request->client->createResponse($responseContent, $responseHeaders);
        $request->afterSend($response);
        return $response;
    }