TInt CWSStarEnveloperHandler::InvokeL(MSenMessageContext& aCtx) { TLSLOG(KSenCoreServiceManagerLogChannelBase , KMinLogLevel,(_L("CWSStarEnveloperHandler::InvokeL(MSenMessageContext& aCtx)"))); const TInt* soapVersion = aCtx.GetIntL(WSStarContextKeys::KSoapVersion); const TDesC8* securityVersion = iHandlerContext.GetDesC8L(HandlerContextKey::KVersion); CSenSoapMessage* message; TPtrC8 secVersion(KSecurityXmlNs); if (securityVersion && (*securityVersion == KSecuritySchemeXmlNs || *securityVersion == KSecurityXmlNs)) { secVersion.Set(*securityVersion); } if (soapVersion) { //old SOAP version force to use old sec spec if ((TSOAPVersion)*soapVersion == ESOAP11) { secVersion.Set(KSecuritySchemeXmlNs); } message = CSenSoapMessage::NewL((TSOAPVersion)*soapVersion, secVersion); } else { message = CSenSoapMessage::NewL(ESOAP12, secVersion); ((MSenContext&)aCtx).Add(WSStarContextKeys::KSoapVersion,ESOAP12); } CleanupStack::PushL(message); CSenElement* elemBody = const_cast<CSenElement*>(aCtx.GetSenElementL(WSStarContextKeys::KBodyElement)); if (elemBody) { message->BodyL().AddElementL(*elemBody); aCtx.Remove(WSStarContextKeys::KBodyElement); } else { const TDesC8* content = aCtx.GetDesC8L(WSStarContextKeys::KBody); if (content) { message->SetBodyL(*content); } } CleanupStack::Pop(message); aCtx.Update(SenContext::KSenCurrentSoapMessageCtxKey, message); return KErrNone; }
TInt CSupLoginServiceProvider::RequestMemberID(const TDesC8 &aRequestUsername, const TDesC8 &aRequestPassword) { __LOGSTR_TOFILE("CSupLoginServiceProvider::RequestMemberID() begins"); // If current operation should be cancelled if (iCancelStatus) return KErrCancel; // Create empty SOAP message to hold the controller application CSenSoapMessage* soapRequest = CSenSoapMessage::NewL(); CleanupStack::PushL(soapRequest); // Set SOAP action HTTP header soapRequest->SetSoapActionL(KSoapActionMemberId); // Get handle to SOAP body element CSenElement& messageBody = soapRequest->BodyL(); // Add new GetMemberID element into SOAP body CSenElement& memberidRequest = messageBody.AddElementL(KServiceXmlns, _L8("GetMemberID")); // Add username child element into the SOAP body CSenElement& usernameString = memberidRequest.AddElementL(_L8("NickName")); usernameString.SetContentL( aRequestUsername ); // Add password element to the request CSenElement& passwordString = memberidRequest.AddElementL(_L8("WebPassword")); passwordString.SetContentL( aRequestPassword ); // Submit SOAP async request TInt retValue = iConnection->SendL(*soapRequest); CleanupStack::PopAndDestroy(); // soapRequest __LOGSTR_TOFILE("CSupLoginServiceProvider::RequestMemberID() ends"); return retValue; }