Files
itflow/libs/vendor/guzzlehttp/psr7/docs/message-helpers.md
2026-08-02 01:26:40 -04:00

4.1 KiB

Message Helpers

This page covers static helper methods for converting, parsing, summarizing, rewinding, and cloning PSR-7 messages. For conceptual request and response behavior, start with PSR-7 Messages.

GuzzleHttp\Psr7\Message::toString

public static function toString(MessageInterface $message): string

Returns the string representation of an HTTP message.

$request = new GuzzleHttp\Psr7\Request('GET', 'http://example.com');
echo GuzzleHttp\Psr7\Message::toString($request);

GuzzleHttp\Psr7\Message::bodySummary

public static function bodySummary(MessageInterface $message, ?int $truncateAt = null): string|null

Get a short summary of the message body.

Will return null if the response is not printable.

Reads seekable bodies from the beginning and restores the original cursor position before returning. Pass null for $truncateAt to use the default summary length.

GuzzleHttp\Psr7\Message::rewindBody

public static function rewindBody(MessageInterface $message): void

Attempts to rewind a message body and throws an exception on failure.

The body of the message will only be rewound if a call to tell() returns a value other than 0.

GuzzleHttp\Psr7\Message::parseMessage

public static function parseMessage(string $message): array

Parses an HTTP message into an associative array.

The array contains the start-line key containing the start line of the message, headers key containing an associative array of header array values, and a body key containing the body of the message.

GuzzleHttp\Psr7\Message::parseRequestUri

public static function parseRequestUri(string $path, array $headers): string

Constructs a URI for an HTTP request message.

The URI is composed from the start-line path and the Host header, using https when the host's port is 443 and http otherwise. Without a Host header, only the path is returned, with extra leading slashes collapsed so an origin-form target cannot be parsed as a network-path reference with its own authority. An InvalidArgumentException is thrown when the Host header is invalid.

GuzzleHttp\Psr7\Message::parseRequest

public static function parseRequest(string $message): RequestInterface

Parses a request message string into a request object.

The request-target must be in origin form, absolute form (without a userinfo component), authority form (CONNECT), or asterisk form (OPTIONS), and any Host header must be a single valid value; otherwise an InvalidArgumentException is thrown. Non-origin-form targets are preserved on the returned request via withRequestTarget().

GuzzleHttp\Psr7\Message::parseResponse

public static function parseResponse(string $message): ResponseInterface

Parses a response message string into a response object.

GuzzleHttp\Psr7\Utils::modifyRequest

public static function modifyRequest(RequestInterface $request, array $changes): RequestInterface

Clone and modify a request with the given changes.

This method is useful for reducing the number of clones needed to mutate a message.

The changes can be one of:

  • method: (string) Changes the HTTP method.
  • set_headers: (array) Sets the given headers. Values must be strings or non-empty arrays of strings.
  • remove_headers: (array) Remove the given headers. Values may be strings or integers.
  • body: (mixed) Sets the given body. Present non-null values are converted with GuzzleHttp\Psr7\Utils::streamFor(), including resources, streams, iterators, callable arrays, closures, invokable objects, and stringable objects. String inputs remain literal bodies.
  • uri: (UriInterface) Set the URI. When the URI contains a host, the Host header is updated from it, and combining this with an explicit Host entry in set_headers throws an InvalidArgumentException. Apply an intentional Host override separately with withHeader() afterwards.
  • query: (string) Set the query string value of the URI.
  • version: (string) Set the protocol version.