HTTP Client installs a standard string table, defining enumerations in the HTTP namespace. It is used to define method names, header names, session and transaction property names, parameter names for headers, and commonly used MIME types (used for the Accept
and Content-Type
headers).
Strings in the string table are constructed, copied, and freed using RStringPool
. The following are the main points to note:
Strings taken from the HTTP string table are accessed using RStringPool::String()
or RStringPool::StringF()
; they do not need to be closed.
Strings not in the HTTP string table must be opened using RStringPool::OpenStringL()
or RStringPool::OpenFStringL()
, and must be closed after use.
Strings can be directly compared, whether RString
or RStringF
. Comparison is efficient and quick.
Strings are not freed from memory until all instances that were Open()
ed have been Close()
d.
The HTTP string pool is automatically created when the first session is started, and can be accessed using the handle returned by RHTTPSession::StringPool()
.