Ejemplo n.º 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;
 }
Ejemplo n.º 2
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;
     $request = $client->createRequest();
     $request->setMethod($model->method);
     $uri = $model->endpoint;
     $params = [];
     foreach ($model->queryKeys as $i => $key) {
         if ($model->queryActives[$i]) {
             $params[] = $key . '=' . urlencode($model->queryValues[$i]);
         }
     }
     if ($params) {
         $uri .= '?' . join('&', $params);
     }
     $request->setUrl($uri);
     $data = [];
     foreach ($model->bodyKeys as $i => $key) {
         if ($model->bodyActives[$i]) {
             $data[$key] = $model->bodyValues[$i];
         }
     }
     $request->setData($data);
     $headers = [];
     foreach ($model->headerKeys as $i => $key) {
         if ($model->headerActives[$i]) {
             $headers[$key] = $model->headerValues[$i];
         }
     }
     $request->setHeaders($headers);
     $begin = microtime(true);
     $response = $request->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;
 }