欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++通過(guò)msxml調(diào)用webservice示例分享

 更新時(shí)間:2014年03月23日 10:43:58   作者:  
這篇文章主要介紹了C++通過(guò)msxml調(diào)用webservice示例分享,需要的朋友可以參考下

其實(shí)沒(méi)什么難度,只是要調(diào)發(fā)送的xml格式,建議使用SoapUI調(diào)好,再粘到項(xiàng)目中

就是使用 msxml因?yàn)槭莔fc的東西,要在項(xiàng)目中設(shè)置在共享DLL中使用MFC

還有要在調(diào)用的服務(wù)后面加?wsdl解釋成xml格式

代碼

webservice

復(fù)制代碼 代碼如下:

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 的摘要說(shuō)明
    /// </summary>
    [WebService(Namespace = "http://www.dbjr.com.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;

調(diào)用代碼

復(fù)制代碼 代碼如下:

#include "Main.h"
int main(int argc, char* argv[])
{
    printf("Test of XMLHTTP by masterz!\n");
    CoInitialize(NULL);
    try
    {
        IXMLHTTPRequestPtr xmlrequest;//定義http請(qǐng)求對(duì)象
        xmlrequest.CreateInstance(__uuidof(XMLHTTP));//創(chuàng)建實(shí)列
        CComVariant vFalse(FALSE);
        CComVariant vNull(NULL);
        xmlrequest->open("POST",bstr_t("http://192.168.71.172/Service1.asmx?wsdl"),vFalse,vNull,vNull);//打開(kāi)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.dbjr.com.cn/soap/envelope/' xmlns:tem='http://www.dbjr.com.cn/'>");
  sb.append("<soapenv:Header/>");
  sb.append("<soapenv:Body>");

  //sb.append("<tem:HelloWorld/>");//調(diào)用HelloWorld函數(shù)

  sb.append("<tem:SayHello>");
  sb.append("<tem:name>colin</tem:name>");//調(diào)用SayHello函數(shù),參數(shù)名是name,值為colin
  sb.append("</tem:SayHello>");

  sb.append("</soapenv:Body>");
  sb.append("</soapenv:Envelope>");

  xmlrequest->send(_variant_t(sb.c_str()));//發(fā)道數(shù)據(jù)

        BSTR bstrbody;
        xmlrequest->get_responseText(&bstrbody);//得到返回?cái)?shù)據(jù)
        _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;
}

相關(guān)文章

  • C++?Boost?Foreach超詳細(xì)分析講解

    C++?Boost?Foreach超詳細(xì)分析講解

    Boost是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱。Boost庫(kù)是一個(gè)可移植、提供源代碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開(kāi)發(fā)引擎之一,是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱
    2022-11-11
  • opencv實(shí)現(xiàn)圖像傾斜校正

    opencv實(shí)現(xiàn)圖像傾斜校正

    這篇文章主要為大家詳細(xì)介紹了opencv實(shí)現(xiàn)圖像傾斜校正,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 教你Clion調(diào)試ROS包的方法

    教你Clion調(diào)試ROS包的方法

    Clion是一款專門開(kāi)發(fā)C以及C++所設(shè)計(jì)的跨平臺(tái)的IDE,本文給大家介紹Clion調(diào)試ROS包的方法,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • C語(yǔ)言強(qiáng)制類型轉(zhuǎn)換規(guī)則實(shí)例詳解

    C語(yǔ)言強(qiáng)制類型轉(zhuǎn)換規(guī)則實(shí)例詳解

    強(qiáng)制類型轉(zhuǎn)換是把變量從一種類型轉(zhuǎn)換為另一種數(shù)據(jù)類型,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言強(qiáng)制類型轉(zhuǎn)換的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • C++深拷貝與淺拷貝的區(qū)別及應(yīng)用

    C++深拷貝與淺拷貝的區(qū)別及應(yīng)用

    這篇文章主要給大家介紹了關(guān)于C++深拷貝與淺拷貝區(qū)別及應(yīng)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • c語(yǔ)言?指針零基礎(chǔ)講解

    c語(yǔ)言?指針零基礎(chǔ)講解

    指針是指向另一個(gè)變量的變量。意思是一個(gè)指針保存的是另一個(gè)變量的內(nèi)存地址。換句話說(shuō),指針保存的并不是普通意義上的數(shù)值,而是另一個(gè)變量的地址值。一個(gè)指針保存了另一個(gè)變量的地址值,就說(shuō)這個(gè)指針“指向”了那個(gè)變量
    2022-02-02
  • C++ 非遞歸實(shí)現(xiàn)二叉樹(shù)的前中后序遍歷

    C++ 非遞歸實(shí)現(xiàn)二叉樹(shù)的前中后序遍歷

    本文將結(jié)合動(dòng)畫(huà)和代碼演示如何通過(guò)C++ 非遞歸實(shí)現(xiàn)二叉樹(shù)的前中后序的遍歷,代碼具有一定的價(jià)值,感興趣的同學(xué)可以學(xué)習(xí)一下
    2021-11-11
  • 使用C++創(chuàng)建多個(gè)IPC機(jī)制的上層接口

    使用C++創(chuàng)建多個(gè)IPC機(jī)制的上層接口

    設(shè)計(jì)一個(gè)上層的IPC接口,這個(gè)接口將在未來(lái)封裝底層的通信機(jī)制,這樣的設(shè)計(jì)要求接口足夠抽象,以便于底層實(shí)現(xiàn)的細(xì)節(jié)對(duì)上層用戶透明,本文給大家介紹了如何使用C++創(chuàng)建多個(gè)IPC機(jī)制的上層接口,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • C++踩坑實(shí)戰(zhàn)之構(gòu)造和析構(gòu)函數(shù)

    C++踩坑實(shí)戰(zhàn)之構(gòu)造和析構(gòu)函數(shù)

    不論是構(gòu)造函數(shù),還是析構(gòu)函數(shù),都是C++、C#語(yǔ)言相對(duì)于其他語(yǔ)言而言特殊的地方,它是為了方便類中對(duì)象的初始化,這篇文章主要給大家介紹了關(guān)于C++踩坑實(shí)戰(zhàn)之構(gòu)造和析構(gòu)函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • C語(yǔ)言關(guān)于二叉樹(shù)中堆的創(chuàng)建和使用整理

    C語(yǔ)言關(guān)于二叉樹(shù)中堆的創(chuàng)建和使用整理

    大家好,這里是針對(duì)二叉樹(shù)中堆結(jié)構(gòu)的順序儲(chǔ)存,整理出來(lái)一篇博客供我們一起復(fù)習(xí)和學(xué)習(xí),如果文章中有理解不當(dāng)?shù)牡胤?還希望朋友們?cè)谠u(píng)論區(qū)指出,我們相互學(xué)習(xí),共同進(jìn)步
    2022-08-08

最新評(píng)論