最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

就是使用 msxml因為是mfc的東西,要在項目中設(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 的摘要說明
    /// </summary>
    [WebService(Namespace = "http://m.fzitv.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;

調(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請求對象
        xmlrequest.CreateInstance(__uuidof(XMLHTTP));//創(chuàng)建實列
        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://m.fzitv.net/soap/envelope/' xmlns:tem='http://m.fzitv.net/'>");
  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);//得到返回數(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++實現(xiàn)LeetCode(70.爬樓梯問題)

    C++實現(xiàn)LeetCode(70.爬樓梯問題)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(70.爬樓梯問題),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 淺析string 與char* char[]之間的轉(zhuǎn)換

    淺析string 與char* char[]之間的轉(zhuǎn)換

    與char*不同的是,string不一定以NULL('\0')結(jié)束。string長度可以根據(jù)length()得到,string可以根據(jù)下標(biāo)訪問。所以,不能將string直接賦值給char*
    2013-10-10
  • C++多線程實現(xiàn)TCP服務(wù)器端同時和多個客戶端通信

    C++多線程實現(xiàn)TCP服務(wù)器端同時和多個客戶端通信

    通訊建立后首先由服務(wù)器端發(fā)送消息,客戶端接收消息;接著客戶端發(fā)送消息,服務(wù)器端接收消息,實現(xiàn)交互發(fā)送消息。本文主要介紹了C++多線程實現(xiàn)TCP服務(wù)器端同時和多個客戶端通信,感興趣的可以了解一下
    2021-05-05
  • C++二進(jìn)制翻轉(zhuǎn)實例分析

    C++二進(jìn)制翻轉(zhuǎn)實例分析

    這篇文章主要介紹了C++二進(jìn)制翻轉(zhuǎn),通過幾個實例分析二進(jìn)制翻轉(zhuǎn)算法的實現(xiàn)技巧,需要的朋友可以參考下
    2014-09-09
  • Qt使用SqlLite實現(xiàn)權(quán)限管理的示例代碼

    Qt使用SqlLite實現(xiàn)權(quán)限管理的示例代碼

    本文主要介紹了Qt使用SqlLite實現(xiàn)權(quán)限管理的示例代碼,管理員針對不同人員進(jìn)行權(quán)限設(shè)定,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • c++ KMP字符串匹配算法

    c++ KMP字符串匹配算法

    大家好,本篇文章主要講的是c++ KMP字符串匹配算法,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Visual Studio Code 2020安裝教程及CPP環(huán)境配置(教程圖解)

    Visual Studio Code 2020安裝教程及CPP環(huán)境配置(教程圖解)

    這篇文章主要介紹了Visual Studio Code 2020安裝教程、CPP環(huán)境配置,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • C++string容器基本概念詳解

    C++string容器基本概念詳解

    c++相比c的一個好處就是實現(xiàn)了很多的容器和泛型算法,使得程序員的工作得到了很大的簡化,本文重點給大家介紹C++string容器基本概念講解,需要的朋友參考下吧
    2021-07-07
  • C++使用遞歸方法求n階勒讓德多項式完整實例

    C++使用遞歸方法求n階勒讓德多項式完整實例

    這篇文章主要介紹了C++使用遞歸方法求n階勒讓德多項式,涉及C++遞歸算法與浮點數(shù)運算的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-05-05
  • C++有限狀態(tài)機(jī)實現(xiàn)詳解

    C++有限狀態(tài)機(jī)實現(xiàn)詳解

    這篇文章主要為大家詳細(xì)介紹了C++有限狀態(tài)機(jī)的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評論

平罗县| 连平县| 来凤县| 彰化市| 长顺县| 西和县| 宁河县| 襄汾县| 宁南县| 金乡县| 吉安县| 万山特区| 咸宁市| 海口市| 邹平县| 原阳县| 福州市| 榆社县| 尖扎县| 万州区| 嘉鱼县| 卫辉市| 湘阴县| 高清| 新兴县| 新昌县| 和硕县| 梁山县| 长泰县| 西宁市| 宁波市| 万源市| 泗洪县| 常州市| 朝阳县| 颍上县| 蕲春县| 海兴县| 五台县| 泗水县| 博野县|