本文回顾了用WTL调用Webservice的过程,gsoap 版本为 gsoap_2.8.3
内容是
strError = string.Empty; string strSessionXml = "<?xml version=\"1.0\" encoding=\"gb2312\"?><root><sessionid>测试</sessionid></root>"; return strSessionXml;
- 用 wsdl2h.exe 将 http://localhost:2000/FileWebService.asmx?wsdl 生成 temp.h
- 用soapcpp2.exe生成 代理类
- 其中 stdsoap2.h stdsoap2.cpp 在gsoap 的目录里找
#include "FileWebServiceSoap.nsmap"
#include "soapFileWebServiceSoapProxy.h"
#include "soapFileWebServiceSoapProxy.h"
在某个按钮的单击事件里添加代码,注意一些设置,否则容易有乱码!
FileWebServiceSoapProxy webservice("http://localhost:2000/FileWebService.asmx"); // 定义Webservice地址 webservice.FileWebServiceSoapProxy_init(SOAP_C_UTFSTRING,SOAP_C_UTFSTRING); // 设置传入参数,传出参数的编码方式 _ns1__FileGetSession begin; // 调用方法前的设置 begin.soap = webservice.soap; //必须 begin.strXml = ""; //传入的参数 _ns1__FileGetSessionResponse end; // webservice返回 end.soap = webservice.soap; //end.FileGetSessionResult = ""; //end.strError =""; webservice.FileGetSession(&begin,&end); //调用方法 int iLen = strlen(end.FileGetSessionResult); //如果包含中文,这里为乱码 wchar_t *pUnicode = new wchar_t[iLen]; MultiBytetoWideChar(CP_UTF8,(LPCSTR)end.FileGetSessionResult,-1,pUnicode,iLen); //转换一下 MessageBox((LPCTSTR)pUnicode,_T("")); //pUnicode 显示的正常
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。