[#boost-urls-url_base-set_query]
= xref:boost.adoc[boost]::xref:boost/urls.adoc[urls]::xref:boost/urls/url_base.adoc[url_base]::set_query
:relfileprefix: ../../../
:mrdocs:


Set the query

== Synopsis


Declared in `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/url_base.hpp#L2007[boost/url/url_base.hpp]>`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:boost/urls/url_base.adoc[url_base]&
set_query(core::string_view s);
----

== Description


This sets the query to the string, which        can be empty.        An empty query is distinct from having        no query.        Reserved characters in the string are        percent‐escaped in the result.


=== Example

[,cpp]
----
assert( url( "http://example.com" ).set_query( "id=42" ).query() == "id=42" );
----

=== Postconditions

[,cpp]
----
this->has_query() == true && this->query() == s
----

=== Exception Safety

Strong guarantee.        Calls to allocate may throw.


=== BNF

[,cpp]
----
query           = *( pchar / "/" / "?" )

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

=== Specification

* link:https://datatracker.ietf.org/doc/html/rfc3986#section-3.4[3.4.  Query (rfc3986)]
        
* link:https://en.wikipedia.org/wiki/Query_string[Query string (Wikipedia)]



== Parameters


|===
| Name | Description

| *s*
| The string to set.


|===

== See Also


xref:boost/urls/url_base/encoded_params-07.adoc[encoded_params],            xref:boost/urls/url_base/params-0b1.adoc[params],            xref:boost/urls/url_base/remove_query.adoc[remove_query],            xref:boost/urls/url_base/set_encoded_query.adoc[set_encoded_query].






[.small]#Created with https://www.mrdocs.com[MrDocs]#