您的位置:首页 > 编程语言 > C语言/C++

使用 VC++访问webservice

2015-09-21 09:28 555 查看
使用 VC++访问webservice 备注日志

NUSOAP 文件编码保存为UTF-8 默认编码改为UTF-8

webserver返回中文时,要使用PHP函数iconv("GBK",“UTF-8”)进行转码;

VC++返回的是UTF-8字符串,要在程序中显示时,要进行转换成ansi或者unicode!

UTF-8编码是用于传输的编码,在本地程序中要进行转换编码。

//访问WEBSERVICES
//-------------------------------------------------------------------------
HRESULT hr = S_OK;
CupdateserverT<CSoapSocketClientT<>> * m_srv = new CupdateserverT<CSoapSocketClientT<>>;
CComBSTR cityCode = "管理员";

CComBSTR userId = "2002";
String strcode = AppCode ;
wstring wcode= strcode.toStringW();
wstring wversion = String(AppVersion).toStringW();
CComBSTR indata = wcode.c_str();
BSTR	bstrOutVersion;
BSTR	bstrOutFolder;
bool bResult = false;

hr  = m_srv->getVersion(indata,&bstrOutVersion);

//获取版本号,判断是否一致

if(SUCCEEDED(hr))
{
wstring strServer = (LPCWSTR)bstrOutVersion;
ServerVersion = unicode2ansi((LPCWSTR)bstrOutVersion) ;
if(wversion == strServer)
{
bResult = false;
goto exit_handle;
}
else
{
bResult = true;
}
}

//获取更新目录
hr  = m_srv->getDirectory(indata,&bstrOutFolder);
if(FAILED(hr))
{	FtpFolder = "";
bResult = false;
}
else
{
wstring wstrFolder = (LPWSTR)bstrOutFolder;
DWORD len = WideCharToMultiByte(CP_ACP,0,(LPCWSTR)bstrOutFolder,-1,NULL,0,NULL,NULL);
char* ansiString = new char[len];

WideCharToMultiByte(CP_ACP,0,(LPCWSTR)bstrOutFolder,-1,ansiString,len,NULL,NULL);
FtpFolder = ansiString ;
delete ansiString;
bResult = true;
}

exit_handle:
if (m_srv != NULL)
delete m_srv;

return bResult;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: