in the sdk http example, i modify the post method.
it successfully runs on the emulator, posts some data and run in one of my application.

When i call this function in my server.exe.

the line iTransaction.SubmitL(); crashes my server.exe and no data is posted.

i trap this line but KErrNone is catched.
How can this be happened. Please help.
Here is my post code below:

void CClientEngine::IssueHTTPPostL(const TDesC8& aUri,
const TDesC8& aContentType,
const TDesC8& aBody)
// Parse string to URI
TUriParser8 uri;

// Copy data to be posted into member variable; iPostData is used later in
// methods inherited from MHTTPDataSupplier.
delete iPostData;
iPostData = aBody.AllocL();

// Get request method string for HTTP POST
RStringF method = iSession.StringPool().StringF(HTTP::EPOST,

// Open transaction with previous method and parsed uri. This class will
// receive transaction events in MHFRunL and MHFRunError.
iTransaction = iSession.OpenTransactionL(uri, *this, method);

// Set headers for request; user agent, accepted content type and body's
// content type.
RHTTPHeaders hdr = iTransaction.Request().GetHeaderCollection();
SetHeaderL(hdr, HTTP::EUserAgent, KUserAgent);
SetHeaderL(hdr, HTTP::EAccept, KAccept);
SetHeaderL(hdr, HTTP::EContentType, aContentType);

// Set this class as an data supplier. Inherited MHTTPDataSupplier methods
// are called when framework needs to send body data.
MHTTPDataSupplier* dataSupplier = this;

// Submit the transaction. After this the framework will give transaction
// events via MHFRunL and MHFRunError.
CAknPopupNotify* notify = CAknPopupNotify::NewL();

TBuf<64> text;
_LIT(KRunError, "Er:%d");
text.Format(KRunError, r);

iRunning = ETrue;

delete notify;

CAknInformationNote* informationNote;
informationNote = new ( ELeave ) CAknInformationNote;
informationNote->ExecuteLD( KSending );