boost::urls::url_base::set_encoded_userinfo

Set the userinfo.

Synopsis

url_base&
set_encoded_userinfo(pct_string_view s);

Description

The userinfo is set to the given string, which may contain percent‐escapes. Escapes in the string are preserved, and reserved characters in the string are percent‐escaped in the result. The effects on the user and password depend on the presence of a colon (':') in the string:

  • If an unescaped colon exists, the characters up to the colon become the user and the rest of the characters after the colon become the password. In this case has_password returns true. Otherwise,

  • If there is no colon, the user is set to the string. The function has_password returns false.

    The interpretation of the userinfo as individual user and password components is scheme‐dependent. Transmitting passwords in URLs is deprecated.
assert( url( "http://example.com" ).set_encoded_userinfo( "john%20doe" ).user() == "john doe" );

Linear in `this‐>size() + s.size()`.

Strong guarantee.

Calls to allocate may throw. Exceptions thrown on invalid input.

userinfo      = [ [ user ] [ ':' password ] ]

user          = *( unreserved / pct-encoded / sub-delims )
password      = *( unreserved / pct-encoded / sub-delims / ":" )

Exceptions

Name Thrown on

`s`

contains an invalid percent‐encoding.

Parameters

Name Description

s

The string to set.

See Also