brew 遇到一个怪异的IWeb post提交数据问题
以下是模拟器上执行:
post 请求代码:
ISourceUtil *pisu;
if (SUCCESS == ISHELL_CreateInstance(zhangmeiCpp::GetZhangmeiCpp()->m_pIShell,AEECLSID_SOURCEUTIL, (void **)&pisu))
{
ISOURCEUTIL_SourceFromMemory(pisu, databuf, content_len, 0, 0, &m_pISource);
ISOURCEUTIL_Release(pisu);
pisu=NULL;
}
else
return FALSE;
CALLBACK_Init(&m_Callback,IWebReadableCB,this);
if ((ISource *)0 !=m_pISource)
{
IWEB_GetResponse(m_web,
(m_web,&piWResp,&m_Callback,url,
WEBOPT_HEADERHANDLER, WebAction_Header,
WEBOPT_COPYOPTS, TRUE,
// WEBOPT_STATUSHANDLER, WebAction_Status,
WEBOPT_METHOD, "POST", // Set method to POST
WEBOPT_BODY, m_pISource, // Set body of message
// to ISOURCE object
WEBOPT_CONTENTLENGTH, content_len,
WEBOPT_END));
return TRUE;
}
-------------------------------------------------------------------------------
http头回调 WebAction_Header:(void *p,const char *cpszName, GetLine *pglVal)
单步调式发现:"Content-Length"=31
-----------------------------------------------------------------------------
接受回调:
WebRespInfo *pWebRespInfo = IWEBRESP_GetInfo(piWResp);
pISource = pWebRespInfo->pisMessage;
headLen = pWebRespInfo->lContentLength;
MEMSET( m_pRecvBuf, 0, RECV_BUFFER );
if(WEB_ERROR_SUCCEEDED(pWebRespInfo->nCode))
{
if((ISource*)0!=pISource)
{
nRecvOnce = ISOURCE_Read(pISource,(char*)m_pRecvBuf,MAX_DATA_BUFFERS);
}
}
pWebRespInfo->lContentLength 返回的值是25。
-------------------------------------------------------
问题:为什么WebAction_Header回调头的时候是31个字节,而 pWebRespInfo->lContentLength 返回的是25 呢 ?
我用sniffer检测发现 传回来的数据体确实是 31个字节。
如能解答非常感谢,如能参与也非常感谢。
谢谢