关于c++用web引用访问webservice
来源:互联网 发布:数据库应用系统有什么 编辑:程序博客网 时间:2024/06/08 05:23
前段时间由于工作需要,需要用c++创建dll 供其他程序通过dll调用webservice服务 ,现在抽空总结一下方法及注意的问题。至于怎么创建webservice服务以及发布 和IIS设置的相关问题 网上也有很多资料 我的另外两篇博客中也有相关介绍,不再赘述。
c++访问webservice有很多方法,各种方法也各有利弊,比较常用的就是web引用,比较方便,如果调用的服务地址需要经常改动,web引用不是很方便,但也是可以的 原理跟gsoap访问差不多,可以参考我的相关博文。
1、新建一个工程,点击工程名称右键->点击Add Web Reference 出现下图 在URL输入需要访问的服务地址 点GO即可列出服务内容,确定无误后点后边的 Add Reference 即可添加成功
2、添加成功后怎么使用
在工程cpp文件中添加头文件,添加成功后会自动添加一个WebService.h的头文件,其中包含了所有你添加的web服务头文件,并且产出重新添加web服务后,会自动重新添加,哪怕是同一个服务。如果你添加了3个web服务,其中就会包含你这三个服务的头文件。
3、声明使用的namespace
using namespace WebService1;
4、实例化服务中的类 即可使用了 使用之前要初始化组件
::CoInitialize(NULL) ;CWebService1 ws;BSTR bstr,strReturn;bstr=_com_util::ConvertStringToBSTR(ptrPatid);ws.GetPatientInfo(bstr,&strReturn);strRes=_com_util::ConvertBSTRToString(strReturn);
即便你服务中传入参数是string类型的,调用的时候要转化为BSTR,你可以到你引用的服务的头文件中查看,其中有详细的定义说明。比如上面的例子中。服务名叫WebReference,在WebReference.h中包含了,你引用服务中所有的服务声明及定义,例子中实例化使用的是类CWebService1 头文件中都有定义。必须按头文件的定义来使用。这个类名其实也就是发布的服务中使用的类名。
总结:用web引用比较简单,注意的内容也就这么多,如果你需要多个引用,这些引用中的namespace 和 类名不能相同,不然无法使用。
附上一个简单的例子:
#include "stdafx.h"#include "stdio.h"#include "WebService.h"#include "iostream"//#include "comutil.h"#include <comdef.h> //包含重载using namespace std;using namespace WebService1;int _tmain(int argc, _TCHAR* argv[]){// 初始化com组件运行环境::CoInitialize(NULL);CWebService1 ws;int nNum1 = 10;int nNum2 = 10;int nSum = 0;HRESULT hr = ws.Sum(nNum1, nNum2, &nSum);printf("The Sum of the two num is:%d\n",nSum);BSTR b_msg = _com_util::ConvertStringToBSTR(" good luck!"); BSTR b_result; hr=ws.HelloWorld(b_msg,&b_result);//CString str(b_result);cout << _com_util::ConvertBSTRToString(b_result) << endl; getchar();return 0;}
- 关于c++用web引用访问webservice
- C#.net访问web URL并处理返回值 && 不加web引用调用webservice
- Flex访问C#Webservice
- VS2010 webservice 添加web引用
- 关于Webservice Web引用报错:缺少 soap:operation 绑定的解决
- 关于webservice c调用
- java访问C#webservice接口
- Javascript AJAX访问C#webservice
- 关于AXIS WebService通过HTTPS协议访问WAS Web服务错误问题的解决方案
- webservice 引用web.config链接字符串异常
- webservice 引用web.config链接字符串异常
- Web services (引用别人的webservice)
- VS中webservice添加web引用
- 关于web访问路径
- 关于WEB-INF目录不提供外部访问及JSP引用 js,css 文件路径问题
- c++::关于引用
- C++:关于引用
- ACTIVEFORM+WebService+ACCESS,Web客户端通过WebService访问Access数据库
- Memcache 面试题
- ViewPager+GridView实现横向滑动 仿大众点评
- JavaScript个人笔记:面向对象设计一(封装及prototype)
- 笔试常见逻辑题
- 移动端web页面使用字体
- 关于c++用web引用访问webservice
- 关于图像处理的初始总结(一)
- 《数据结构与算法》学习笔记30 有向图的拓扑排序
- Android 动画机制及实战
- iOS 键盘自适应(IQKeyboardManager)使用小结
- 深入理解Java虚拟机笔记---方法调用
- Parajumpers Jacka The ghost of female
- sizeof()与strlen()
- mybatis调用保存方法的时候一直报500错误