public function enrichRequestWithParsedBody(ServerRequestInterface $request) { if ($request->hasHeader(HeaderName::CONTENT_TYPE) && $request->getHeaderLine(HeaderName::CONTENT_TYPE) === 'application/json') { $parsedBody = $this->serializer->deserialize($request->getBody()->__toString(), 'array', 'json'); return $request->withParsedBody($parsedBody); } else { return $request->withParsedBody([]); } }
public function modify(ServerRequestInterface $request) : ServerRequestInterface { if (false === strpos($request->getHeaderLine('Content-Type'), 'application/json')) { return $request; } // TODO: Implement broken json handling return $request->withParsedBody(json_decode($request->getBody()->getContents(), $this->asAssociativeArray)); }
public function modify(ServerRequestInterface $request) : ServerRequestInterface { if (false === strpos($request->getHeaderLine('Content-Type'), 'application/x-www-form-urlencoded')) { return $request; } parse_str($request->getBody()->getContents(), $parsedBody); return $request->withParsedBody($parsedBody); }
/** * @inheritDoc */ public function parse(ServerRequestInterface $request) : ServerRequestInterface { if (false === strpos($request->getHeaderLine('Content-Type'), 'application/json')) { return $request; } $body = $request->getBody()->getContents(); $parsedBody = json_decode($body, true); // TODO: Implement broken json handling return $request->withParsedBody($parsedBody); }
/** * Handle the payload. * * @param ServerRequestInterface $request * * @return ServerRequestInterface */ protected function handlePayload(ServerRequestInterface $request) { if ($request->getParsedBody() || !in_array($request->getMethod(), ['POST', 'PUT', 'DELETE'], true)) { return $request; } $contentType = trim($request->getHeaderLine('Content-Type')); //json if (stripos($contentType, 'application/json') === 0) { return $request->withParsedBody($this->parseJson($request->getBody()))->withBody(Middleware::createStream()); } //urlencoded if (stripos($contentType, 'application/x-www-form-urlencoded') === 0) { return $request->withParsedBody($this->parseUrlEncoded($request->getBody()))->withBody(Middleware::createStream()); } //csv if (stripos($contentType, 'text/csv') === 0) { return $request->withParsedBody($this->parseCsv($request->getBody()))->withBody(Middleware::createStream()); } return $request; }
/** * {@inheritDoc} */ public function parse(ServerRequestInterface $request) { $parsedBody = $request->getParsedBody(); if (!empty($parsedBody)) { return $request; } $rawBody = (string) $request->getBody(); if (empty($rawBody)) { return $request; } parse_str($rawBody, $parsedBody); return $request->withParsedBody($parsedBody); }
/** * Parses csv strings. * * @param ServerRequestInterface $request * * @return ServerRequestInterface */ public function csv(ServerRequestInterface $request) { $body = $request->getBody(); if ($body->isSeekable()) { $body->rewind(); } $stream = $body->detach(); $data = []; while (($row = fgetcsv($stream)) !== false) { $data[] = $row; } fclose($stream); return $request->withParsedBody($data); }
public function modify(ServerRequestInterface $request) : ServerRequestInterface { $headerLine = $request->getHeaderLine('Content-Type'); if (false === strpos($headerLine, 'multipart/')) { return $request; } $boundary = null; if (preg_match("/boundary=\"?(.*)\"?\$/", $headerLine, $matches)) { $boundary = $matches[1]; } $variables = []; $files = []; $body = $request->getBody()->detach(); $partInfo = null; while (false !== ($lineN = fgets($body))) { if (0 === strpos($lineN, '--')) { if (null === $boundary) { $boundary = rtrim($lineN); } continue; } $line = rtrim($lineN); if ('' === $line) { if (isset($partInfo['Content-Disposition']) && true !== empty($partInfo['Content-Disposition']['filename'])) { $this->parseFile($body, $boundary, $partInfo, $files); } elseif ($partInfo !== null) { $this->parseVariable($body, $boundary, $partInfo['Content-Disposition']['name'], $variables); } $partInfo = null; continue; } list($key, $value) = explode(':', $line, 2); $partInfo[$key] = $this->parseHeader($value, $key); } return $request->withParsedBody($variables)->withUploadedFiles($files); }
/** * {@inheritdoc} */ public function withParsedBody($data) { return new static($this->wrapped->withParsedBody($data)); }
/** * {@inheritDoc} */ public function withParsedBody($data) { return new self($this->app, $this->psrRequest->withParsedBody($data)); }
/** * Proxy to ServerRequestInterface::withParsedBody() * * {@inheritdoc} */ public function withParsedBody($params) { $new = $this->psrRequest->withParsedBody($params); return new self($new, $this->originalRequest); }
/** * @inheritDoc */ public function withParsedBody($data) { $self = clone $this; $self->serverRequest = $this->serverRequest->withParsedBody($data); return $self; }
/** * @param Request $request * @return Request */ protected function parseFromUrlEncoded(Request $request) { $rawBody = (string) $request->getBody(); if (empty($rawBody)) { return $request; } $parsedBody = []; parse_str($rawBody, $parsedBody); return $request->withParsedBody($parsedBody); }