zoukankan      html  css  js  c++  java
  • c++ 利用msxml2.dll请求WebService

    #pragma once
    #include 
    "stdafx.h"
    #include 
    "Atlbase.h"
    //#import "msxml.dll"
    #import "msxml2.dll"

    using namespace MSXML2;
    int main(int argc, char* argv[])
    {
        printf(
    "Test of XMLHTTP by masterz!\n");
        CoInitialize(NULL);
        
    try
        
    {
            IXMLHTTPRequestPtr xmlrequest;
    //定义http请求对象
            
    //xmlrequest.CreateInstance("Msxml2.XMLHTTP");
            xmlrequest.CreateInstance(__uuidof(XMLHTTP));//创建实列
            CComVariant vFalse(FALSE);
            CComVariant vNull(NULL);
            xmlrequest
    ->open("POST",bstr_t("http://localhost:1135/Service1.asmx/GetName"),vFalse,vNull,vNull);//打开WEBServeice方法GetName
            xmlrequest->setRequestHeader("Content-Type:","application/x-www-form-urlencoded");//设置Http头
            _bstr_t bsdata("name=xiaowy&password=kkkk");//use your login name 传入请求参数
            xmlrequest->send(_variant_t(bsdata));//发道数据
            BSTR bstrbody;
            xmlrequest
    ->get_responseText(&bstrbody);//得到返回数据
            _bstr_t bstrtbody(bstrbody);
            printf(
    "%s\n",(LPCTSTR)bstrtbody);
            
    //MessageBox(0,(LPCTSTR)bstrtbody,"",MB_OK);
            MSXML2::IXMLDOMDocument2Ptr m_xmldoc;
            m_xmldoc.CreateInstance(__uuidof(MSXML2::DOMDocument));
            m_xmldoc
    ->loadXML(bstrbody);
            
    /*MSXML2::IXMLDOMNodeListPtr nodesPtr;
            nodesPtr = m_xmldoc->selectNodes(_bstr_t("string"));
            LONG * length;
            HRESULT r =  nodesPtr->get_length(length);
    */

            
    //MSXML2::IXMLDOMNodePtr nodePtr =
            
    //BSTR * str;
            
    //HRESULT result = nodePtr->get_text(str);
            MSXML2::IXMLDOMNodePtr node = m_xmldoc->documentElement->firstChild;
            LPCTSTR str 
    = (LPCTSTR)node->nodeName;
            LPCTSTR str2
    =(LPCTSTR)m_xmldoc->documentElement->text;
            printf(
    "%s",str2);
            getchar();
        }

        
    catch (_com_error &e)
        
    {
            printf(
    "Description = '%s'\n", (char*) e.Description());
        }

        CoUninitialize();
        printf(
    "program end\n");
        
    return 0;
    }
  • 相关阅读:
    【BZOJ】2019: [Usaco2009 Nov]找工作(spfa)
    【BZOJ】3668: [Noi2014]起床困难综合症(暴力)
    Redis 字符串结构和常用命令
    Redis实现存取数据+数据存取
    Spring 使用RedisTemplate操作Redis
    使用 java替换web项目的web.xml
    SQL server 从创建数据库到查询数据的简单操作
    SQL server 安装教程
    IntelliJ IDEA 注册码(因为之前的地址被封杀了,所以换了个地址)
    对程序员有帮助的几个非技术实用链接(点我,你不会后悔的)
  • 原文地址:https://www.cnblogs.com/wubiyu/p/1248291.html
Copyright © 2011-2022 走看看