brew 从服务器下载内容
要从服务器下载内容,用的IWeb接口,请达人看看,是这么下载的么
#define TEST_URL "http://110.80.88.100:80/FinanceServer/servlet/testServlet?id=135"
CALLBACK_Cancel(&pMe->m_CallBack);
CALLBACK_Init(&pMe->m_CallBack,WebReadCB,pMe);
IWEB_GetResponse(pMe->m_pIWeb,
(pMe->m_pIWeb,&pMe->m_pIWebResp,
&pMe->m_CallBack,/*pMe->url*/TEST_URL,
WEBOPT_HANDLERDATA, pMe,
WEBOPT_HEADERHANDLER, myiweb_Header,
WEBOPT_STATUSHANDLER, myiweb_Status,
WEBOPT_PROXYSPEC, "http:///http://10.0.0.200:80",
WEBOPT_END));
static void WebReadCB(cjxweb* pMe){
int ByteCount;
WebRespInfo *pWebResInfo = IWEBRESP_GetInfo(pMe->m_pIWebResp);
if (!WEB_ERROR_SUCCEEDED(pWebResInfo->nCode))
{
return;
}
ISource *pIsource = pWebResInfo->pisMessage;
pMe->arrMy = (char *)MALLOC(GETLEN+1);
if ((ISource *)0 != pIsource)
{
ByteCount = (int)ISOURCE_Read(pWebResInfo->pisMessage,pMe->arrMy,GETLEN);
//ByteCount =(int)ISOURCE_Read(pWebResInfo->pisMessage,(char*)buf, sizeof(buf));
//ByteCount = (int)ISOURCE_Read(pWebResInfo->pisMessage,(char*)szGet,GETLEN);
switch(ByteCount)
{
case ISOURCE_END:
pMe->pchContent[pMe->lGetingLen+1] = '\0';
break;
case ISOURCE_ERROR:
break;
case ISOURCE_WAIT:
ISOURCE_Readable(pIsource, &pMe->m_CallBack);
break;
default:
......
ISOURCE_Readable(pIsource, &pMe->m_CallBack);
}
/////////////////////////////////////////////
通过
ByteCount = (int)ISOURCE_Read(pWebResInfo->pisMessage,pMe->arrMy,GETLEN);
调试能看到pMe->arrMy里就是要下载的内容,
到case ISOURCE_END:
时,下载的内容都成功保存到pMe->pchContent,pMe->pchContent是char* 。下载的内容都是中文文字,
问题一,我这样下载有问题吗?
问题二,现在要怎么将该char* pMe->pchContent转成AECHR* 呢
用UTF8TOWSTR()和STRTOWSTR()都没成功。
[解决办法]
先看看 服务器传过来的中文的编码格式
[解决办法]
char型是1个字节的文字类型,AECHAR类型,它是双子的,是宽字符型。
用 STREXPAND() 函数将 char 字符串转换为 AECHAR