C++通过msxml调用webservice示例分享
其实没什么难度,只是要调发送的xml格式,建议使用SoapUI调好,再粘到项目中
就是使用 msxml因为是mfc的东西,要在项目中设置在共享DLL中使用MFC
还有要在调用的服务后面加?wsdl解释成xml格式
代码
webservice
using System;
using System.Data;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;
namespace WebService
{
/// <summary>
/// Service1 的摘要说明
/// </summary>
[WebService(Namespace = "//www.jb51.net/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public string SayHello(string name)
{
return "Hello "+name;
}
}
}
头文件
[code]
#pragma once
#include "stdafx.h"
#include "Atlbase.h"
//#import "msxml.dll"
#import "msxml4.dll"
using namespace MSXML2;
#include <string>
#include <iostream>
using namespace std;
调用代码
#include "Main.h"
int main(int argc, char* argv[])
{
printf("Test of XMLHTTP by masterz!\n");
CoInitialize(NULL);
try
{
IXMLHTTPRequestPtr xmlrequest;//定义http请求对象
xmlrequest.CreateInstance(__uuidof(XMLHTTP));//创建实列
CComVariant vFalse(FALSE);
CComVariant vNull(NULL);
xmlrequest->open("POST",bstr_t("http://192.168.71.172/Service1.asmx?wsdl"),vFalse,vNull,vNull);//打开WEBServeice方法:加?wsdl
xmlrequest->setRequestHeader(_bstr_t(_T("Content-Type")), _bstr_t(_T("text/xml")));
string sb;
sb.append("<?xml version='1.0' encoding='utf-8'?>");
sb.append("<soapenv:Envelope xmlns:soapenv='//www.jb51.net/soap/envelope/' xmlns:tem='//www.jb51.net/'>");
sb.append("<soapenv:Header/>");
sb.append("<soapenv:Body>");
//sb.append("<tem:HelloWorld/>");//调用HelloWorld函数
sb.append("<tem:SayHello>");
sb.append("<tem:name>colin</tem:name>");//调用SayHello函数,参数名是name,值为colin
sb.append("</tem:SayHello>");
sb.append("</soapenv:Body>");
sb.append("</soapenv:Envelope>");
xmlrequest->send(_variant_t(sb.c_str()));//发道数据
BSTR bstrbody;
xmlrequest->get_responseText(&bstrbody);//得到返回数据
_bstr_t bstrtbody(bstrbody);
printf("%s\n",(LPCTSTR)bstrtbody);
MSXML2::IXMLDOMDocument2Ptr m_xmldoc;
m_xmldoc.CreateInstance(__uuidof(MSXML2::DOMDocument));
m_xmldoc->loadXML(bstrbody);
MSXML2::IXMLDOMNodePtr node = m_xmldoc->documentElement->firstChild;
LPCTSTR str = (LPCTSTR)node->nodeName;
string str2=(string)m_xmldoc->documentElement->text;
cout<<str2<<endl;
}
catch (_com_error &e)
{
printf("Description = '%s'\n", (char*) e.Description());
}
CoUninitialize();
printf("program end\n");
return 0;
}
相关文章
- 这篇文章主要介绍了c# 三种方法调用WebService接口的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
- 这篇文章介绍了c#动态调用Webservice的两种方法实例,有需要的朋友可以参考一下...2020-06-25
- 这篇文章主要给大家介绍了关于c#中的WebService及其调用方式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 方法一:直接调用复制代码 代码如下:<? /******************************************************************************/ /* 文件名 : soapclient.php /* 说 明 : WebService接口客户端例程 /****************...2014-06-07
- 这篇文章主要为大家详细介绍了C# 创建、部署和调用WebService的简单示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 下面小编就为大家带来一篇C# Soap调WebService的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
- 这篇文章主要介绍了c#动态改变webservice的url访问地址,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了WebService 的简单封装接口调用方法,主要是通过简单的sql语句来查询数据库,从而返回dataset,十分简单实用,有需要的小伙伴可以参考下。...2020-06-25
- 这篇文章主要介绍了JAVA调用SAP WEBSERVICE服务实现流程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-11
- c#编写webservice服务引用实例分享,大家参考使用吧...2020-06-25
- C#调用和实现WebService,纯手工打造! 需要的朋友可以参考一下...2020-06-25
- 本文主要用详细的图文给大家介绍C#创建、部署、调用WebService的全部过程以及中间需要避免的问题。...2020-06-25
- webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。今天我们来详细讨论下如何动态调用以及读取解析返回结果...2020-06-25
- 本文主要讲解ASP.NET中的Webservice的安全设置两种方法,一种基于soapheader,一种基于SoapExtensionAttribute,需要的朋友可以参考下。...2021-09-22
- webservice默认的返回为XML 要返回json可以用json工具类把对象转为json字符串,需要的朋友可以参考下...2021-09-22
解决yii webservice 提示:Procedure 'getSent' not present 错误
本文章为各位介绍解决yii webservice 提示:Procedure 'getSent' not present 错误方法,有兴趣的和小编一起看看。 其实根据常用的webservice清除缓存方法,在client端...2016-09-20排除JQuery通过HttpGet调用WebService返回Json时“parserror”错误
排除JQuery通过HttpGet调用WebService返回Json时“parserror”错误的解决方法。...2021-09-22- NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService。它是一个开源软件,是完全采用PHP语言编写的、通过HTTP收发SOAP消息的一系列PHP类,由NuSphere Corpora...2016-11-25
php中nusoap调用java axis2发布的webservice
下面本文章重点给大家介绍关于php中nusoap调用java axis2发布的webservice例子,希望此例子能帮助大家。 调用webservice 开发环境是:Eclipse3.6 (java IDE)+ JDK 1....2016-11-25ASP.NET WebService中使用ASP.NET_SessionId的问题说明
proxy.CookieContainer存储了客户端的 ASP.NET_SessionId。这样以后每次通过webservice 方法调用时,都会将ASP.NET_SessionId传递到服务器端。...2021-09-22