diff -r 89d6a7a84779 -r 25a17d01db0c Symbian3/PDK/Source/GUID-B432A48B-46CE-4FD4-880E-DA15AA304CAA.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/PDK/Source/GUID-B432A48B-46CE-4FD4-880E-DA15AA304CAA.dita Fri Jan 22 18:26:19 2010 +0000 @@ -0,0 +1,47 @@ + + + + + +Adding, +removing, and accessing header field parameters +

Parameters can be associated with header field parts at the time +of adding the part. There are two variants of RHTTPHeaders::SetFieldL(): +the first is described previously. The second variant takes four parameters, +of which two specify the part name/value and two specify the parameter name/value.

To +associate more than one parameter with the part, the function must be invoked +repeatedly. This does not create duplicate parts; rather it locates the part +with the specified value, and then adds additional parameters.

To +remove parameters from header parts, the entire part must be removed using RHTTPHeaders::RemoveFieldPart(), +and then added again.

To access parameter values, the header name +and parameter name must be specified. RHTTPHeaders::GetParam() is +used, and has an optional fourth parameter in which the part index can be +provided. If not, the API assumes that the first header part contains the +parameter.

The following code from HTTPEXAMPLECLIENT illustrates +the use of header parameters with the WWW-Authenticate header:

// Display realm for WWW-Authenticate header + RStringF wwwAuth = strP.StringF(HTTP::EWWWAuthenticate,RHTTPSession::GetTable()); + if (fieldNameStr == wwwAuth) + { + // check the auth scheme is 'basic' + RStringF basic = strP.StringF(HTTP::EBasic,RHTTPSession::GetTable()); + RStringF realm = strP.StringF(HTTP::ERealm,RHTTPSession::GetTable()); + THTTPHdrVal realmVal; + if ((fieldVal.StrF() == basic) && + (!hdr.GetParam(wwwAuth, realm, realmVal))) + { + RStringF realmValStr = strP.StringF(realmVal.StrF()); + fieldVal16.Copy(realmValStr.DesC()); + iUtils.Test().Printf(_L("Realm is: %S\n"), &fieldVal16); + realmValStr.Close(); + } + basic.Close(); + realm.Close(); + } + wwwAuth.Close();
+
\ No newline at end of file