Symbian3/SDK/Source/GUID-795B41AF-FBEA-56CE-AE20-EF17BE754723.dita
changeset 7 51a74ef9ed63
child 8 ae94777fff8f
equal deleted inserted replaced
6:43e37759235e 7:51a74ef9ed63
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-795B41AF-FBEA-56CE-AE20-EF17BE754723" xml:lang="en"><title>HTTP
       
    13 Utilities Library Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    14 <section><title>Purpose</title> <p>The <xref href="GUID-46ED72C3-E4BF-336C-BDC1-1F5128A9197D.dita"><apiname>InetProtUtils</apiname></xref> API
       
    15 provides functionality to handle URIs, such as extracting URI components,
       
    16 constructing and modifying a URI, text utilities, and URI component utilities
       
    17 required to work with URIs. </p> </section>
       
    18 <section><title>Required background</title> <p>The clients that make use of
       
    19 this API must be familiar with the following standards: </p> <ul>
       
    20 <li id="GUID-4F6AFFCE-D446-5E19-91F5-8F29A059D7C9"><p> <xref href="http://www.ietf.org/rfc/rfc2396.txt" scope="external">RFC 2396</xref>, for Uniform Resource Identifiers (URI) </p> </li>
       
    21 <li id="GUID-D32F8A79-8D61-5B0F-A38C-9C77C50D1E1D"><p> <xref href="http://tools.ietf.org/html/rfc1132" scope="external">RFC 1123</xref> for internet date and time specifications </p> </li>
       
    22 <li id="GUID-8B0C887C-0856-5903-BF3C-558BCFC8BC1F"><p> <xref href="http://www.openmobilealliance.org/tech/affiliates/wap/wap-230-wsp-20010705-a.pdf" scope="external">WAP WSP</xref> for HTTP functionality. </p> </li>
       
    23 </ul> </section>
       
    24 <section><title>Key concepts</title> <p>The component has the following key
       
    25 concepts: </p> <dl>
       
    26 <dlentry>
       
    27 <dt>URI</dt>
       
    28 <dd><p>Universal Resource Identifier (URI) is a formatted string that identifies
       
    29 the location and name of a resource, for instance a web page address. </p> </dd>
       
    30 </dlentry>
       
    31 <dlentry>
       
    32 <dt>URI components</dt>
       
    33 <dd><p>Let us consider the following URI: </p> <p> <codeph>http://user:info@waterlang.org:80/top_path/foo.htm?checkme#ref</codeph> </p> <p>The
       
    34 URI can be split into components as follows: </p> <table id="GUID-4765D4B9-A3E4-5ADF-B1A7-830BB7E10EBD">
       
    35 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
       
    36 <thead>
       
    37 <row>
       
    38 <entry>URI Component</entry>
       
    39 <entry>Example</entry>
       
    40 </row>
       
    41 </thead>
       
    42 <tbody>
       
    43 <row>
       
    44 <entry><p>Scheme (protocol) </p> </entry>
       
    45 <entry><p> <codeph>http</codeph>  </p> </entry>
       
    46 </row>
       
    47 <row>
       
    48 <entry><p>Authority </p> <ul>
       
    49 <li id="GUID-7FF5EC7F-1B7C-5E91-9479-E305E4459EA0"><p>User Information </p> </li>
       
    50 <li id="GUID-BC76E4D9-7393-5464-9E3C-7B0756FFD4D1"><p>Host </p> </li>
       
    51 <li id="GUID-B586337A-1116-58C4-BC7F-940945AD38B8"><p>Port </p> </li>
       
    52 </ul> </entry>
       
    53 <entry><p> </p> <ul>
       
    54 <li id="GUID-81135C6E-C55E-5699-98D6-49BA2D9871BE"><p> <codeph>user:info</codeph>  </p> </li>
       
    55 <li id="GUID-4A07BDB8-F32B-5572-8B46-4E0C78EDC65C"><p> <codeph>waterlang.org</codeph>  </p> </li>
       
    56 <li id="GUID-18C83120-4046-52B7-926C-DC9644E86C49"><p> <codeph>80</codeph>  </p> </li>
       
    57 </ul> </entry>
       
    58 </row>
       
    59 <row>
       
    60 <entry><p>Path </p> </entry>
       
    61 <entry><p> <codeph>top_path/foo.htm</codeph>  </p> </entry>
       
    62 </row>
       
    63 <row>
       
    64 <entry><p>Query </p> </entry>
       
    65 <entry><p> <codeph>checkme</codeph>  </p> </entry>
       
    66 </row>
       
    67 <row>
       
    68 <entry><p>Segment </p> </entry>
       
    69 <entry><p> <codeph> ref</codeph>  </p> </entry>
       
    70 </row>
       
    71 </tbody>
       
    72 </tgroup>
       
    73 </table> </dd>
       
    74 </dlentry>
       
    75 <dlentry>
       
    76 <dt>Authority component</dt>
       
    77 <dd><p>In an URI, the user information, host and port information put together
       
    78 is called authority. Format for authority appears as the following: </p> <p> <codeph>[user-info@]host[:port]</codeph>  </p> <p>where, <codeph>user-info</codeph> may consist of a user name and, optionally, scheme-specific information
       
    79 about how to gain authorization to access the server, for example, password. <codeph>port</codeph> specifies
       
    80 the port number. </p> </dd>
       
    81 </dlentry>
       
    82 </dl> </section>
       
    83 <section><title>Architectural relationships</title> <p>The <xref href="GUID-46ED72C3-E4BF-336C-BDC1-1F5128A9197D.dita"><apiname>InetProtUtils</apiname></xref> API
       
    84 (<filepath>inetprotutils.dll</filepath>) is used by the following components: </p> <ul>
       
    85 <li id="GUID-8FA3CA2A-0A42-5F64-9AC0-56B2E340B63A"><p>App services </p> <ul>
       
    86 <li id="GUID-922DF8F6-1801-5A99-AD8D-15A92DF31242"><p>DM / DS </p> </li>
       
    87 <li id="GUID-096E985C-6170-5908-955E-4406CC3C690D"><p>Content Handling Framework </p> </li>
       
    88 </ul> </li>
       
    89 <li id="GUID-DCA9F8B1-1066-57F6-9BC5-ECF8D81B0EA2"><p>Symbian platform services: </p> <ul>
       
    90 <li id="GUID-88AEE90D-1A2D-5468-95C8-AFE8ECB5FF14"><p>Certificate lib </p> </li>
       
    91 <li id="GUID-4265166D-092D-5005-8E7D-127EB9C25DF1"><p>Multimedia </p> </li>
       
    92 </ul> </li>
       
    93 </ul> </section>
       
    94 <section><title>API summary</title> <p>The following classes are used for
       
    95 creating, parsing and modifying the URI: </p> <table id="GUID-6161C49F-F18A-51BD-A6F8-51E045A1DD6E">
       
    96 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
       
    97 <thead>
       
    98 <row>
       
    99 <entry>Class Name</entry>
       
   100 <entry>Description</entry>
       
   101 </row>
       
   102 </thead>
       
   103 <tbody>
       
   104 <row>
       
   105 <entry><p> <xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref>  </p> </entry>
       
   106 <entry><p>Creates URI from parts and modifies the URI. </p> </entry>
       
   107 </row>
       
   108 <row>
       
   109 <entry><p> <xref href="GUID-3B5EC759-81D3-3A5E-B437-7AA3BD3124BA.dita"><apiname>CAuthority8</apiname></xref>  </p> </entry>
       
   110 <entry><p>Modifies the authority and creates authority from parts. </p> </entry>
       
   111 </row>
       
   112 <row>
       
   113 <entry><p> <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref>  </p> </entry>
       
   114 <entry><p>Retrieves information about the URI such as extract, compare, validate
       
   115 etc. (the non-modifying functionality). </p> </entry>
       
   116 </row>
       
   117 <row>
       
   118 <entry><p> <xref href="GUID-F7CCFDE5-4829-314C-A209-2F6714C02AA6.dita"><apiname>TAuthorityC8</apiname></xref>  </p> </entry>
       
   119 <entry><p>Retrieves information about the authority URI such as extract, compare,
       
   120 validate etc. </p> </entry>
       
   121 </row>
       
   122 <row>
       
   123 <entry><p> <xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita"><apiname>TUriParser8</apiname></xref>  </p> </entry>
       
   124 <entry><p>Parses a text URI. </p> </entry>
       
   125 </row>
       
   126 <row>
       
   127 <entry><p> <xref href="GUID-985C12CB-9230-3A35-9F5F-E455D4C23EBB.dita"><apiname>TAuthorityParser8</apiname></xref>  </p> </entry>
       
   128 <entry><p>Parses a text authority. </p> </entry>
       
   129 </row>
       
   130 </tbody>
       
   131 </tgroup>
       
   132 </table> <p>The following classes are used for parsing delimited data in the
       
   133 URI: </p> <table id="GUID-D58565BF-4859-53FA-8278-CF3ED3D9B487">
       
   134 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
       
   135 <thead>
       
   136 <row>
       
   137 <entry>Class Name</entry>
       
   138 <entry>Description</entry>
       
   139 </row>
       
   140 </thead>
       
   141 <tbody>
       
   142 <row>
       
   143 <entry><p> <xref href="GUID-51DFAA06-EC5E-32E6-9819-39938C46B2C0.dita"><apiname>CDelimitedPath8</apiname></xref>  </p> </entry>
       
   144 <entry><p>Creates a delimited path, where components of the path are delimited
       
   145 by '/' . </p> </entry>
       
   146 </row>
       
   147 <row>
       
   148 <entry><p> <xref href="GUID-9A640379-04BC-3A8E-9452-54833B2419AE.dita"><apiname>CDelimitedQuery8</apiname></xref>  </p> </entry>
       
   149 <entry><p>Creates a delimited query, where components of the query are delimited
       
   150 by '&amp;'. </p> </entry>
       
   151 </row>
       
   152 <row>
       
   153 <entry><p> <xref href="GUID-CF89AECB-5085-32CA-85B4-3573CDB1D595.dita"><apiname>CDelimitedPathSegment8</apiname></xref>  </p> </entry>
       
   154 <entry><p>Creates a delimited path segment, where components of the path segment
       
   155 are delimited by ';'. </p> </entry>
       
   156 </row>
       
   157 <row>
       
   158 <entry><p> <xref href="GUID-CD78AD53-FD6C-397A-9930-12E8EDCF6040.dita"><apiname>TDelimitedPathParser8</apiname></xref>  </p> </entry>
       
   159 <entry><p>Parses path delimited by a '/'. </p> </entry>
       
   160 </row>
       
   161 <row>
       
   162 <entry><p> <xref href="GUID-F76F2546-D3AC-341B-BED8-D3C88EA2C018.dita"><apiname>TDelimitedQueryParser8</apiname></xref>  </p> </entry>
       
   163 <entry><p>Parses query delimited by a '&amp;'. </p> </entry>
       
   164 </row>
       
   165 <row>
       
   166 <entry><p> <xref href="GUID-F55AF53B-662F-3682-9B6D-A3D14AED0D58.dita"><apiname>TDelimitedPathSegmentParser8</apiname></xref>  </p> </entry>
       
   167 <entry><p>Parses path segments delimited by a ';'. </p> </entry>
       
   168 </row>
       
   169 <row>
       
   170 <entry><p> <xref href="GUID-9CC256C4-D4A2-3534-9B3C-2FBF1AAE5F51.dita"><apiname>EscapeUtils</apiname></xref>  </p> </entry>
       
   171 <entry><p>Encodes and decodes excluded and reserved URI characters. It can
       
   172 be used with 8 bit and 16 bit descriptors. </p> </entry>
       
   173 </row>
       
   174 <row>
       
   175 <entry><p> <xref href="GUID-9FC0E63B-1927-30B0-8A97-E9CB1010FFEE.dita"><apiname> InetProtTextUtils</apiname></xref>  </p> </entry>
       
   176 <entry><p>Parses HTTP header text. </p> </entry>
       
   177 </row>
       
   178 <row>
       
   179 <entry><p> <xref href="GUID-265F8D6B-4B88-342A-BD7B-5934CC9437DA.dita"><apiname>UriUtils</apiname></xref>  </p> </entry>
       
   180 <entry><p>Provides extra utilities for URI/Authority classes such as creating
       
   181 URI from Unicode descriptor. </p> </entry>
       
   182 </row>
       
   183 </tbody>
       
   184 </tgroup>
       
   185 </table> <p>The following classes are used for encoding and decoding WSP headers: </p> <table id="GUID-7EFEBABF-2AE5-56EF-9C73-B3B84E279A93">
       
   186 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
       
   187 <thead>
       
   188 <row>
       
   189 <entry>Class Name</entry>
       
   190 <entry>Description</entry>
       
   191 </row>
       
   192 </thead>
       
   193 <tbody>
       
   194 <row>
       
   195 <entry><p> <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita"><apiname>CWspHeaderEncoder</apiname></xref>  </p> </entry>
       
   196 <entry><p>The class is used to encode one header field at a time with all
       
   197 its values and parameters. </p> </entry>
       
   198 </row>
       
   199 <row>
       
   200 <entry><p> <xref href="GUID-310AB7CF-C1B0-3C5A-8C4A-C96259A49F0F.dita"><apiname>TWspHeaderSegmenter </apiname></xref>  </p> </entry>
       
   201 <entry><p>The class is used to separate a WSP buffer into WSP header name/value
       
   202 pairs. </p> </entry>
       
   203 </row>
       
   204 <row>
       
   205 <entry><p> <xref href="GUID-CFE23AB1-A94B-3609-8B37-35C2A9023DE3.dita"><apiname>TWspPrimitiveEncoder</apiname></xref>  </p> </entry>
       
   206 <entry><p>The class is used to convert WSP header data into binary strings. </p> </entry>
       
   207 </row>
       
   208 <row>
       
   209 <entry><p> <xref href="GUID-A0F4B729-E70A-3125-A5A6-D908216FCA5A.dita"><apiname>TWspPrimitiveDecoder</apiname></xref>  </p> </entry>
       
   210 <entry><p>The class is used to convert the binary data into integers, strings,
       
   211 dates, etc. </p> </entry>
       
   212 </row>
       
   213 <row>
       
   214 <entry><p> <xref href="GUID-9C280536-E402-35CB-B317-BE4E6A8C23D8.dita"><apiname>TWspField</apiname></xref>  </p> </entry>
       
   215 <entry><p>The class holds the name and value pair of WSP header field. </p> </entry>
       
   216 </row>
       
   217 </tbody>
       
   218 </tgroup>
       
   219 </table> <p>The following diagram shows the <codeph>InetProtUtils</codeph> classes
       
   220 and their relationships. </p> <fig id="GUID-482F6611-C67C-5003-94DD-29DCBCC85092">
       
   221 <title>              Class diagram for InetProtUtils            </title>
       
   222 <image href="GUID-C4D0B083-CCF9-52BD-A6BC-5187BEF3B0CB_d0e172177_href.png" placement="inline"/>
       
   223 </fig> </section>
       
   224 <section><title>Typical uses</title> <p>Applications that use HTTP transport
       
   225 framework use <xref href="GUID-46ED72C3-E4BF-336C-BDC1-1F5128A9197D.dita"><apiname>InetProtUtils</apiname></xref> API. The utilities may also
       
   226 be useful for applications which deal with internet strings or URIs, such
       
   227 as mail or IM applications. </p> <p>The following tasks can be performed using <xref href="GUID-46ED72C3-E4BF-336C-BDC1-1F5128A9197D.dita"><apiname>InetProtUtils</apiname></xref>: </p> <p><b>Creating
       
   228 an URI </b> </p> <p>URI can be created in different ways. It can be created
       
   229 from parts, from file or by resolving two URIs using <xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref> class. </p> <p>For
       
   230 more information on creating a URI, refer to <xref href="GUID-4D32A29F-6573-5233-8982-BDEEDDB4F0FF.dita">Creating
       
   231 an URI</xref> tutorial. </p> <p><b>Parsing an URI </b> </p> <p>To check if
       
   232 the components in the URI are syntactically correct as per the four main components
       
   233 and fragment identifier, parse the URI. Use <xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita"><apiname>TUriParser8</apiname></xref> class
       
   234 to parse an URI. </p> <p>For more information on parsing, refer to <xref href="GUID-D535D51E-EAF5-581A-929B-5B1EF179A273.dita">Parsing
       
   235 an URI</xref> tutorial. </p> <p>URI classes namely, <xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref>, <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref> and <xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita"><apiname>TUriParser8</apiname></xref> provide
       
   236 functionalities for parsing generic and SIP URIs. <xref href="GUID-E6F8C94C-C74C-329B-BB11-E06F0E83A4BB.dita"><apiname>CUri8</apiname></xref> class
       
   237 provides a reference to a <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref> object so that the non-modifying
       
   238 functionality can be used. <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref> is used to obtain information
       
   239 about an URI. </p> <p><b>Extracting URI components </b> </p> <p> <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita"><apiname>TUriC8</apiname></xref> class
       
   240 provides extracting methods to extract components from the URI. <xref href="GUID-25B6817F-8EBC-3DF3-B3BC-3D1E1430C8A6.dita"><apiname>TAuthority8</apiname></xref> class
       
   241 extracts the authority component. </p> <p>For more information on getting
       
   242 URI components, refer to <xref href="GUID-8E3BD71D-D372-5315-B282-F87FA60A1D5A.dita">Extracting
       
   243 the URI Components</xref> tutorial. </p> <p><b>Generating the filename from
       
   244 an URI </b> </p> <p>A fully qualified file name can be generated from a file
       
   245 URI object. <xref href="GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74.dita#GUID-A81CD022-5AD4-3BD8-B006-B3891C4F4F74/GUID-AD8DC94E-743B-3347-9AC4-B37AE23AA786"><apiname>TUriC8::GetFileNameL()</apiname></xref> provides this functionality.
       
   246 The path component encodes the file's location on the file system. </p> <p>For
       
   247 more information, refer to <xref href="GUID-4B7352BF-4BF8-5FF2-8835-F146BB7D4EAC.dita">Generating
       
   248 File Name from URI</xref> tutorial. </p> <p><b>Validating a URI </b> </p> <p>Use <xref href="GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1.dita#GUID-EB2EEEF1-705B-334D-A4B0-3D0C4CBE2DA1/GUID-9B6C3634-7E19-39B5-A12F-80A16DDCFF4E"><apiname>TUriParser8::Validate()</apiname></xref> to
       
   249 check if components in a given URI are valid. This validates only SIP and
       
   250 SIPS scheme components. </p> <p>For more information, refer to <xref href="GUID-8F5BC47B-0551-5245-A1ED-629380111B43.dita">Validating
       
   251 an URI</xref> tutorial. </p> <p><b>Parsing delimited data </b> </p> <p>URI
       
   252 components are separated into segments using delimiters. Parse this delimited
       
   253 data. <codeph>TDelimitedXxxxParser8</codeph> classes provide the functionality
       
   254 to parse the delimited data, extract the current segment and parse the string
       
   255 for the next segment. </p> <p>For more information, refer to <xref href="GUID-42F0F282-58D6-4878-B53D-EAEEF86A3D7D.dita">Parsing
       
   256 Delimited Data</xref> tutorial. </p> <p><b>Modifying the data
       
   257 and the delimiter </b> </p> <p>The delimiters and segments of data within
       
   258 an URI can be added, removed and parsed. This functionality is provided by <codeph>CDelimitedXxxx8</codeph> classes. </p> <p>For
       
   259 more information, refer to <xref href="GUID-834F5FC8-EBE4-4076-B1E3-38DDFF89D700.dita">Modifying
       
   260 the Data and Delimiter</xref> tutorial. </p> <p><b>Escape encoding and decoding
       
   261 unsafe characters in an URI </b> </p> <p>The reserved and unsafe data in the
       
   262 URI is escape encoded and decoded using <xref href="GUID-9CC256C4-D4A2-3534-9B3C-2FBF1AAE5F51.dita"><apiname>EscapeUtils</apiname></xref> class.
       
   263 It also supports converting Unicode data (16-bit descriptor) into UTF8 data
       
   264 (8-bit descriptor) and vice-versa. For more information, refer to <xref href="GUID-0E8206E9-4F1D-5DF5-8A69-9B0831061CFF.dita">Escape
       
   265 Encoding and Decoding</xref> and <xref href="GUID-853BFDC0-1993-5EFC-AA68-C9EA496EEF3F.dita">Converting
       
   266 between Unicode and Utf8</xref> tutorials. </p> <p><b>Manipulating the URI
       
   267 data </b> </p> <p>The data in an URI can be manipulated using various text
       
   268 parsing utilities that are used typically in HTTP headers. <xref href="GUID-9FC0E63B-1927-30B0-8A97-E9CB1010FFEE.dita"><apiname>InetProtTextUtils</apiname></xref> provides
       
   269 functionality to: </p> <ul>
       
   270 <li id="GUID-E845FA13-8644-5762-94C7-F34C21BA50CC"><p>remove the leading/trailing
       
   271 contiguous white space characters from the descriptors </p> </li>
       
   272 <li id="GUID-D2418E05-405D-5E19-A239-D5261B420A83"><p>convert the decimal/hexadecimal
       
   273 value to descriptor and vice versa. </p> </li>
       
   274 <li id="GUID-99B9C4A8-AE2A-5541-BCB0-59E138898FB8"><p>extract tokens from: </p> <ul>
       
   275 <li id="GUID-AE9AFA73-84D8-5EDD-A51C-21714FA5C96C"><p>a list, which is a string
       
   276 separated with a character, for example, abc, def, ghi. </p> </li>
       
   277 <li id="GUID-CF6A13D6-0FB0-57A3-B6E2-1791316FD61E"><p>quoted strings in text. </p> </li>
       
   278 </ul> </li>
       
   279 </ul> <p>It supports both Unicode and UTF-8 formats. For more information
       
   280 on text manipulations, refer to <xref href="GUID-098106AC-0A5A-5C7D-B432-492EADFE7EA3.dita">Manipulating
       
   281 URI Data</xref> tutorial. </p><p><b>Using URI utilities </b> </p> <p>Additional
       
   282 functionality to create an URI from unicode descriptor is provided by <xref href="GUID-265F8D6B-4B88-342A-BD7B-5934CC9437DA.dita"><apiname>UriUtils</apiname></xref> class.
       
   283 It also allows to translate unsafe characters to UTF8 and escape-encode. </p> <p>For
       
   284 more information, refer to <xref href="GUID-A8F13E5A-56F2-5C72-AF81-5AC062B94C6C.dita">Using
       
   285 URI utilities</xref>. </p> <p><b>Using datetime utilities </b> </p> <p>To
       
   286 store dates in universal times and parse the internet dates into <xref href="GUID-13A9DD2B-8ABC-3D62-B54E-4F5DD5B9228B.dita"><apiname>TDateTime</apiname></xref> dates,
       
   287 use <xref href="GUID-156E9C02-99AD-3C63-80AD-939A6DFB08B1.dita"><apiname>TInternetDate</apiname></xref>. </p> <p>For more information, refer
       
   288 to <xref href="GUID-3F7142D6-261B-5FB9-888A-1A9BB51B67E5.dita">Using Date and Time
       
   289 Utilities</xref> tutorial. </p> <p><b>Escape encoding and decoding the WSP
       
   290 header </b> </p> <p>The WSP header information is encoded and decoded using <xref href="GUID-8E0D4BBE-BD06-396F-9517-45F9BFCDEF37.dita"><apiname>CWspHeaderEncoder</apiname></xref>.
       
   291 It uses <xref href="GUID-CFE23AB1-A94B-3609-8B37-35C2A9023DE3.dita"><apiname>TWspPrimitiveEncoder</apiname></xref> to convert the data into binary
       
   292 strings. </p> <p>For more information, refer to <xref href="GUID-0BE9F825-9FF8-55A1-AF7C-A380A0C64735.dita">Encoding
       
   293 and Decoding WSP Header</xref>. </p><note> Use <codeph>Cxxx</codeph> classes
       
   294 to create text from parts and <codeph>TxxParser</codeph> classes to parse
       
   295 text into components.</note> </section>
       
   296 </conbody><related-links>
       
   297 <link href="GUID-F46CDF2C-DA64-5F30-B4C8-CC4B02CE67B9.dita"><linktext>HTTP Utilities
       
   298 Library Concepts</linktext></link>
       
   299 <link href="GUID-96837414-3041-5E1E-A2E9-C18EECCF86D9.dita"><linktext>HTTP Utilities
       
   300 Library Tutorials</linktext></link>
       
   301 <link href="GUID-AFAD0F36-330B-50BD-B810-85BE7FA21179.dita"><linktext>HTTP Utilities
       
   302 Library Example</linktext></link>
       
   303 </related-links></concept>