/** * Add a HTTP call to the data * * @param Request $request Call request * @param Response $response Call response * @param float $time duration of the call */ public static function addCall($request, $response, $time = null) { $calls = static::config('calls'); $trace = Debugger::trace(['start' => 2]); $calls[] = ['request' => ['uri' => (string) $request->getUri(), 'body' => $request->body(), 'method' => $request->getMethod(), 'headers' => $request->getHeaders(), 'content-type' => $request->getHeader('Content-Type')], 'response' => ['body' => $response->body(), 'status_code' => $response->getStatusCode(), 'headers' => $response->getHeaders(), 'content-type' => $response->getHeader('Content-Type')], 'time' => $time, 'trace' => $trace]; static::drop('calls'); static::config('calls', $calls); }
/** * Build the header context for the request. * * Creates cookies & headers. * * @param \Cake\Http\Client\Request $request The request being sent. * @param array $options Array of options to use. * @return void */ protected function _buildHeaders(Request $request, $options) { $headers = []; foreach ($request->getHeaders() as $name => $values) { $headers[] = sprintf('%s: %s', $name, implode(", ", $values)); } $cookies = []; foreach ($request->cookies() as $name => $value) { $cookies[] = "{$name}={$value}"; } if ($cookies) { $headers[] = 'Cookie: ' . implode('; ', $cookies); } $this->_contextOptions['header'] = implode("\r\n", $headers); }