当前位置: 代码迷 >> Brew >> brew 从服务器上载内容
  详细解决方案

brew 从服务器上载内容

热度:10105   发布时间:2013-02-26 00:00:00.0
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 
  相关解决方案