Пример #1
0
 /**
  * @param RequestForm $model
  * @return ResponseRecord
  */
 protected function send(RequestForm $model)
 {
     $this->module->trigger(Module::EVENT_ON_REQUEST, new RequestEvent(['form' => $model]));
     /** @var \yii\httpclient\Client $client */
     $client = Yii::createObject($this->module->clientConfig);
     $client->baseUrl = $this->module->baseUrl;
     $begin = microtime(true);
     $response = $client->createRequest()->setMethod($model->method)->setUrl($model->getUri())->setData($model->getBodyParams())->setHeaders($model->getHeaders())->send();
     $duration = microtime(true) - $begin;
     $record = new ResponseRecord();
     $record->status = $response->getStatusCode();
     $record->duration = $duration;
     foreach ($response->getHeaders() as $name => $values) {
         $name = str_replace(' ', '-', ucwords(str_replace('-', ' ', $name)));
         $record->headers[$name] = $values;
     }
     $record->content = $response->getContent();
     $this->module->trigger(Module::EVENT_ON_RESPONSE, new ResponseEvent(['form' => $model, 'record' => $record]));
     return $record;
 }