源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++通过msxml调用webservice示例分享

  • 时间:2021-03-30 01:55 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++通过msxml调用webservice示例分享
其实没什么难度,只是要调发送的xml格式,建议使用SoapUI调好,再粘到项目中 就是使用 msxml因为是mfc的东西,要在项目中设置在共享DLL中使用MFC 还有要在调用的服务后面加?wsdl解释成xml格式 代码 webservice
[u]复制代码[/u] 代码如下:
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 = "http://www.1sucai.cn/")]     [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;
调用代码
[u]复制代码[/u] 代码如下:
#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='http://www.1sucai.cn/soap/envelope/' xmlns:tem='http://www.1sucai.cn/'>");   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; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部