| Home | Libraries | People | FAQ | More

##### url::query

Return the query.

###### Synopsis

    template<
        class StringToken = string_token::return_string>
    StringToken::result_type
    query(
        StringToken&& token = {}) const;

###### Description

If this contains a query, it is returned as a string (which may be empty). Otherwise, an empty string is returned. Any percent-escapes in the string are decoded first.

When plus signs appear in the query portion of the url, they are converted to spaces automatically upon decoding. This behavior can be changed by setting decode options.

###### Example

    assert( url_view( "/sql?id=42&name=jane%2Ddoe&page+size=20" ).query() == "id=42&name=jane-doe&page size=20" );

###### Complexity

Linear in `this->query().size()`.

###### Exception Safety

Calls to allocate may throw.

###### BNF

    query           = *( pchar / "/" / "?" )

    query-param     = key [ "=" value ]
    query-params    = [ query-param ] *( "&" query-param )

###### Specification

- <a href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.4 >3.4. Query (rfc3986)</a> @li <a href="https://en.wikipedia.org/wiki/Query_string" >Query string (Wikipedia)

###### See Also

`encoded_params`, `encoded_query`, `has_query`, `params`.