加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WTL 学习六 gsoap 调用webservice的过程

发布时间:2020-12-17 00:58:03 所属栏目:安全 来源:网络整理
导读:? ? ? ?本文回顾了用WTL调用Webservice的过程,gsoap 版本为?gsoap_2.8.3 新建一个webservice,返回一个简单的unicode字符串. ?? 内容是 strError = string.Empty; string strSessionXml = "?xml version="1.0" encoding="gb2312"?rootsessionid测试/ses

? ? ? ?本文回顾了用WTL调用Webservice的过程,gsoap 版本为?gsoap_2.8.3


  • 新建一个webservice,返回一个简单的unicode字符串.

??

内容是

    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生成 代理类




  • 完成后,生成了几个文件,带12的不知道是啥意思,还没有来的及研究



  • 在WTL的项目里新建一个 Gsoap 筛选器,添加几个文件




  • 其中 stdsoap2.h ??stdsoap2.cpp 在gsoap 的目录里找



  • 并且需要将几个cpp文件进行一下设置,选中,右击,属性





  • MainDlg.cpp 里添加头文件


#include "FileWebServiceSoap.nsmap"
#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 显示的正常

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读