This tutorials describe the steps to extract URI components.
URI components can be extracted from
an URI using TUriC8::Extract()
and passing a TUriComponent flag.
For example, EUriQuery
or EUriPath
.
The following code
fragment illustrates how to extract a scheme component. Parse the URI before
the component is extracted calling TUriParser8::Parse()
.
_LIT8( KUri,"http://web.intra/Dev/Sysdoc/devlib.htm" ); TUriParser8 parser; // URI parser object TInt result = parser.Parse( KUri ); // parse the URI descriptor //Extract the scheme component from the parsed URI const TDesC8& des = parser.Extract( EUriScheme );
where des
is a descriptor that contains the
extracted scheme component. Other components such as userinfo, host, port
and so on defined in TUriComponent can be extracted in
a similar way.
To retrieve a specific authority component from the URI, call TAuthority8::Extract(). The following code fragment illustrates how to extract a authority component.
_LIT8( KAuthorityDesc, "http://user:pass@www.mypage.com" ); TAuthorityParser8 authorityParser; //Authority parser object authorityParser.Parse( KAuthorityDesc ); //Parse the authority descriptor //extract the user infomation from the authority component const TDesC8& des = authorityParser.Extract( EAuthorityUserinfo );
where, des
contains the user info that is
extracted from the authority component. EAuthorityUserinfo
is
an enum value of TAuthorityComponent. Similarly, host and
port can be extracted using EAuthorityHost
and EAuthorityPort
respectively,
which are defined in TAuthorityComponent.
To create a new descriptor containing
the desired component or the full URI, call TUriC8::DisplayFormL()
.
This
converts a component into a new descriptor. The component to be converted
can take any value between EUriScheme
and EUriFragment
or EUriComplete
(for
the full URI). This method is used to obtain a pointer to a 16 bit descriptor
for GUI display of URI.
HBufC16* uri = parsedUri->DisplayFormL( EUriComplete );
where EUriComplete
indicates that all the components
in the URI are displayed.
To fetch the URI, call TUriC8::UriDes()
.
This returns a pointer to 8 bit descriptor(TDesC8
) containing
the URI, which is used for HTTP requests.
To create a new descriptor containing a specific component or the full authority component, call TAuthority8::DisplayFormL().
This
converts a component into a new descriptor. The component to be converted
can take any value between EAuthorityUserinfo
and EAuthorityPort
or
the full authority, EAuthorityComplete
.
HBufC authority = parsedUri->DisplayFormL( EAuthorityComplete );
where EAuthorityComplete
means that the complete authority
is displayed.