`
frenchmay
  • 浏览: 232624 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用C++开发webservice客户端(下)

阅读更多

webserice的客户机 安装 SoapClient36g.exe,选择默认安装配置

新建vc++6.0的项目,添加下面的测试代码 TestWriteService.cpp

 

#include <stdio.h>

#import "msxml3.dll"
using namespace MSXML2;

#import "C:\Program Files\Common Files\MSSoap\Binaries\MSSOAP1.dll" \
	exclude("IStream", "ISequentialStream", "_LARGE_INTEGER", \
"_ULARGE_INTEGER", "tagSTATSTG", "_FILETIME")

using namespace MSSOAPLib;

void main()
{
	CoInitialize(NULL);
	
	ISoapSerializerPtr Serializer;
	ISoapReaderPtr Reader;
	ISoapConnectorPtr Connector;
	
	// 与Web服务连接
	Connector.CreateInstance(__uuidof(HttpConnector));
	Connector->Property["EndPointURL"] = "http://192.168.1.99:8080/WriteRecordWS/services/WriteRecordWebService";
	Connector->Connect();
	
	// 开始消息
	Connector->BeginMessage();
	
	// 创建SoapSerializer对象
	Serializer.CreateInstance(__uuidof(SoapSerializer));
	
	// 将serializer连接到connector的输入字符串
	Serializer->Init(_variant_t((IUnknown*)Connector->InputStream));
	
	// 创建SOAP消息
	Serializer->startEnvelope("","","");
	Serializer->startBody("");

	Serializer->startElement("sayHello","","","");
	
	Serializer->startElement("in0","","","");
	Serializer->writeString("frenchmay@gmail.com");
	Serializer->endElement();

	Serializer->endElement();

	Serializer->endBody();
	Serializer->endEnvelope();

	// 将该消息发送给web服务
	Connector->EndMessage();
	
	// 读取响应
	Reader.CreateInstance(__uuidof(SoapReader));
	
	// 将reader联接到connector的输出字符串
	Reader->Load(_variant_t((IUnknown*)Connector->OutputStream), "");
	
	// 显示结果
	printf("Answer: %s\n", (const char *)Reader->RPCResult->text);

	Serializer.Release();
	Connector.Release();
	Reader.Release();
	CoUninitialize();
	
} 

 

上面的代码主要功能

 

1:指定webservice的网络资源路径

http://192.168.1.99:8080/WriteRecordWS/services/WriteRecordWebService

2:构建一个soap协议报文

 

	Serializer->startElement("sayHello","","","");
	
	Serializer->startElement("in0","","","");
	Serializer->writeString("c:\\123.bin");
	Serializer->endElement();

3: 通过http协议发送请求和接受响应。

	// 将该消息发送给web服务
	Connector->EndMessage();
	
	// 读取响应
	Reader.CreateInstance(__uuidof(SoapReader));

 

主义的是调试过程中,可能会因为soap协议的格式和方法参数的问题导致请求失败。

建议使用抓包工具:分别抓取java 的webservice客户端和c++的webService客户端发送的soap包,进行比较。

 

打印结果

分享到:
评论

相关推荐

    C++通过gSOAP开发WebService客户端.docx

    本文档主要介绍了使用C++语言和gSOAP库开发WebService客户端的步骤和方法。gSOAP是一个基于C/C++的WebService开发库,支持SOAP和XML协议。下面是开发WebService客户端的详细步骤和知识点: 一、准备工作 在开发...

    gSOAP C/C++ 开发WebService

    gSOAP是著名的开源工具,专为C和C++开发者设计,用于构建Web服务客户端和服务器端应用程序。这个工具包提供了一种高效、灵活且易于使用的框架,使得在C/C++中实现SOAP(Simple Object Access Protocol)协议变得...

    VS2015 C++和C++的通过SOAP的WebService,C++和C#的WebService发布和调用

    GSOAP为C++开发带来了便利,而C#则依赖于.NET框架提供的功能。理解这些概念和技术对于构建跨平台、跨语言的应用程序至关重要,尤其是在需要旧版C++代码与现代C#服务进行通信的情况下。确保正确配置你的项目设置,...

    VC开发的WEBSERVICE客户端

    在本主题中,我们将深入探讨如何使用Visual C++(简称VC)来开发Web Service的客户端。 1. **Web Service基本概念** - **SOAP (Simple Object Access Protocol)**:是Web Service通信的核心,是一种轻量级的协议,...

    c++调用webservice(包括静态和动态以及webservice源码)

    开发者需要先从WSDL文件生成gsoap的输入文件,然后使用gsoap工具生成C++客户端代码。调用过程主要包括解析SOAP消息,创建请求,发送HTTP请求,接收响应,然后解码响应内容。 **2. 动态调用WebService:** 动态调用...

    WebService客户端开发(gsoap) MFC

    WebService客户端开发是一个重要的IT主题,尤其当涉及到跨平台通信和数据交换时。在这个场景中,我们关注的是使用gSOAP库在MFC(Microsoft Foundation Classes)环境中进行开发。gSOAP是一个开源工具包,它允许...

    C++环境下使用gsoap开发WebService接口操作指南

    使用C++开发WebService程序时,需要借助于插件gsoap。 gsoap是一种跨平台的C和C++软件开发工具包,生成C/C++的RPC代码,XML数据绑定,对SOAP Web服务和其他应用形成高效的具体架构解析器。这个工具包提供了一个全面...

    C++调用webservice接口

    本文将详细介绍如何使用C++语言来调用WebService接口,并通过具体的步骤演示整个过程。 #### 二、准备工作 首先,我们需要准备一些必要的工具和资源: 1. **下载gSOAP库**:gSOAP是一个强大的工具,可以自动生成...

    C++调用webservice接口.docx

    虽然使用C++进行WebService调用不如其他语言直观,但在某些特定场景下,C++的优势仍然明显。希望本篇文档能够帮助大家更好地理解和实践C++与WebService的结合。 ### 参考资料 - 官方网站:http://www.cs.fsu.edu/~...

    Windows下使用gsoap实现webservice客户端

    本篇文章将详细讲解如何在Windows下使用gsoap来构建一个能够查询MySQL数据库的Web服务客户端。 1. **gSOAP简介** gSOAP是一个开源的SOAP库,由Genivia公司维护。它提供了自动生成C/C++客户端和服务端代码的功能,...

    C++调用WebService封装成DLL,供外部调用

    在Windows环境下,我们需要定义导出函数,这些函数可以调用生成的WebService客户端代码。使用`__declspec(dllexport)`或`__declspec(dllimport)`关键字来控制函数的导入和导出。 6. **使用DLL**:外部应用程序只...

    C++_WebService_Demon

    `C++_WebService_Demon`项目就是将这两种技术结合,使用C++实现了一个基于gSOAP库的Web服务示例,包括服务器端和客户端的代码。 gSOAP是用于C和C++的开源工具包,它允许开发者创建符合SOAP(简单对象访问协议)标准...

    c++webservice

    gSOAP是广泛使用的C/C++ Web服务开发工具,它自动生成客户端和服务器端的代码,支持SOAP 1.1和1.2协议。使用gSOAP,开发者可以很容易地将C++函数绑定到Web服务操作上,实现调用远程服务。 4. 调用Web服务的步骤 -...

    gsoap C++ 开发webService

    在本文中,我们将深入探讨如何在C++环境下使用gSOAP开发Web服务。Web服务是一种允许不同系统之间进行交互的标准化方式,它基于XML、SOAP、WSDL和UDDI等技术,实现了跨平台的可互操作性。gSOAP是一个强大的工具包,它...

    C++中通过Webservice和HTTP协议的网络传输

    在C++中实现Webservice,可以使用gsoap工具。gsoap是一个开源的C/C++软件开发工具包,能自动生成C++代码来处理SOAP消息。它支持WS-I基本Profile,可以与各种SOAP服务器通信。对于RESTful Webservice,可以使用C++库...

    C++和webService通讯方式之Json格式

    在IT行业中,C++是一种强大的、面向对象的编程语言,广泛应用在系统软件、游戏开发、高性能计算等多个领域。Web Service则是一种基于开放标准(如XML、SOAP)的接口,允许不同系统之间通过网络进行通信。当C++需要与...

    VS2010使用c++、gSOAP调用WebService 源码

    gSOAP是一个开源工具集,它允许开发人员创建C和C++客户端和服务端应用程序,以处理基于SOAP(Simple Object Access Protocol)的Web服务。以下是对这一主题的详细说明: 1. **Visual Studio 2010**:这是Microsoft...

    gsoap开发包 C/C++开发webservice用到的gsoap开发包

    gSOAP(Generic SOAP)是一个开源库,用于C和C++编程语言,专为构建Web服务客户端和服务端应用程序而设计。这个开发包是针对C/C++开发者的重要工具,它提供了处理XML数据和SOAP协议的能力,使得在不同的系统和平台...

Global site tag (gtag.js) - Google Analytics