工具:vc2003

 //引入相关头文件,连接动态库,定义全局变量。

 //*****************************************************
#include "resource.h"
#include "xml/Markup.h"
#import "msxml4.dll" #import "C:/Program Files/Common Files/MSSoap/Binaries/mssoap30.dll" exclude("IStream", "IErrorInfo", "ISequentialStream", "_LARGE_INTEGER","_ULARGE_INTEGER", "tagSTATSTG", "_FILETIME")
using namespace MSSOAPLib30;
using namespace std; #include "XmlRW.h"
using namespace MSXML2; _bstr_t g_strNameSpace = "urn:SmsNewOperator";
//****************************************************

webservice下发短信短信实例:

BOOL WebserviceSubmit(CString g_strQXTUser,CString g_strQXTPSW,CString strMobilePhoneNumber,CString strSMSSubject,CString &strErrorMsg)
{
ISoapSerializerPtr Serializer;
ISoapReaderPtr Reader;
ISoapConnectorPtr Connector; HRESULT hr; //Connect to the service.
hr = Connector.CreateInstance(__uuidof(HttpConnector30));//创建对象
if(FAILED(hr))
{
printf("创建COM对象失败\n");
g_DebugMsg.Sprintf("创建COM对象失败\n");
return FALSE;
} Connector->Property["EndPointURL"] ="http://211.162.125.74/ema/services/SmsNewOperator?wsdl"; //EndPointURL指定web服务 hr = Connector->Connect();
if (FAILED(hr))
{
printf("创建HttpConnector30实例失败!\n");
g_DebugMsg.Sprintf("创建HttpConnector30实例失败!\n");
return FALSE;
} //开始消息//消息体,// //在与服务器连接后,我们需要指定Web服务完成的操作 ,为了指定该操作,我们需要再次使用SoapConnector的Property属性
Connector->Property["SoapAction"] = "urn:SmsNewOperator/sendSms"; //函数体参数
Connector->BeginMessage(); hr = Serializer.CreateInstance(__uuidof(SoapSerializer30));
if (FAILED(hr))
{
printf("创建soapSerializer失败!\n");
g_DebugMsg.Sprintf("创建soapSerializer失败!\n");
return FALSE;
} Serializer->Init(_variant_t((IUnknown*)Connector->InputStream));
//Build the SOAP Message.创建soap消息
Serializer->StartEnvelope("","NONE",""); //第一个参数是命名空间。
Serializer->StartBody(""); Serializer->StartElement("sendSms",g_strNameSpace,"NONE",""); //函数处理 //第一个参数处理
Serializer->StartElement("account","","NONE","");
Serializer->WriteString((_bstr_t)g_strQXTUser);
Serializer->EndElement(); //第二个参数处理
Serializer->StartElement("password","","NONE","");
Serializer->WriteString((_bstr_t)g_strQXTPSW);
Serializer->EndElement(); //第三个参数处理
Serializer->StartElement("message",g_strNameSpace,"NONE",""); Serializer->StartElement("phoneNumber","","NONE","");
Serializer->WriteString((_bstr_t)strMobilePhoneNumber);
Serializer->EndElement(); Serializer->StartElement("content","","NONE","");
Serializer->WriteString((_bstr_t)strSMSSubject);
Serializer->EndElement(); /*
Serializer->StartElement("scheduleTime","","NONE","");
Serializer->WriteString((_bstr_t)strscheduleTime);
Serializer->EndElement();
*/
//第三个参数处理完成
Serializer->EndElement(); //第四个参数作为返回信息
Serializer->StartElement("sendResMsg","","NONE","");
Serializer->WriteString("");
Serializer->EndElement(); //第五个参数作为返回信息
Serializer->StartElement("errMsg","","NONE","");
Serializer->WriteString("");
Serializer->EndElement(); //设置接口函数sendsms结束
Serializer->EndElement(); Serializer->EndBody();
Serializer->EndEnvelope(); Connector->EndMessage(); Reader.CreateInstance(__uuidof(SoapReader30)); Reader->Load(_variant_t((IUnknown*)Connector->OutputStream),""); //加载返回数据 // Display the result.
strErrorMsg = (const char*)Reader->Body->xml; g_DebugMsg.Sprintf("Answer:%s\n\n", (const char*)Reader->Body->xml); return TRUE;
}

CPP-网络/通信:WebService的更多相关文章

  1. 网络协议-webService协议

    webservice 协议 Web Service使用的是 SOAP (Simple Object Access Protocol)协议soap协议只是用来封装消息用的.封装后的消息你可以通过各种已有 ...

  2. [转]Android的网络与通信

    本文转自:http://www.cnblogs.com/qingblog/archive/2012/06/15/2550735.html 第一部分 Android网络基础   Android平台浏览器 ...

  3. socket 网络编程

    1. 基础socket库 socket.h: /** * 网络套接字库 */ #ifndef Socket_h #define Socket_h #include <stdio.h> #i ...

  4. Day8 - Python网络编程 Socket编程

    Python之路,Day8 - Socket编程进阶   本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...

  5. HCNA之网络通信基础

    一.通信与网络 通信的概念我们并不陌生,在人类社会的起源和发展过程中,通信就直伴随着我们.般认为, 20世纪七.八十年代,人类社会已进入到信息时代,对于生活在信息时代的我们,通信的必要性和重要性更是不 ...

  6. 初学Python——Socket网络编程

    认识socket socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道来实现数据的互相传递.我们知道网络 通信 都 是基于 ip+port(端口) 方能定位到目标的具体机 ...

  7. go语言之行--网络编程、http处理流程详情

    一.简介 go语言中的网络编程主要通过net包实现,net包提供了网络I/O接口,包括HTTP.TCP/IP.UDP.域名解析和Unix域socket等.和大多数语言一样go可以使用几行代码便可以启动 ...

  8. docker进阶——数据管理与网络

    一.数据卷管理 用户在使用 Docker 的过程中,势必需要查看容器内应用产生的数据,或者 需要将容器内数据进行备份,甚至多个容器之间进行数据共享,这必然会涉及 到容器的数据管理 (1)Data Vo ...

  9. Day8-Python3基础-Socket网络编程

    目录: 1.Socket语法及相关 2.SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道 ...

  10. Python之网络编程 Socket编程

    本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道来实 ...

随机推荐

  1. 1 手写Java ArrayList核心源码

    手写ArrayList核心源码 ArrayList是Java中常用的数据结构,不光有ArrayList,还有LinkedList,HashMap,LinkedHashMap,HashSet,Queue ...

  2. API网络接口

    1.天气 文章:http://segmentfault.com/a/1190000002607883 地址:http://api.lib360.net/open/weather.json?city=北 ...

  3. lightoj1001【简单题】

    题意: 一个人的值不能超过10: #include<stdio.h> #include<queue> #include<string.h> #include< ...

  4. Telnet 命令格式

    Telnet host 端口 如:Telnet 127.0.0.1 11211 执行命令进入后 ctr +] ,打开回显,并回车即可

  5. Mecanim Control

    http://www.ufe3d.com/doku.php/mecanimcontrol Mecanim Control Your ultimate solution for Mecanim base ...

  6. JQuery获取iframe中window对象的方法-contentWindow

    document.getElementsByTagName('iframe')[0].contentWindow 获取到的就是iframe中的window对象.

  7. DRF教程3-类视图

    Rewriting our API using class-based views 使用类视图重写root views,只需要一点点重构. from django.http import Http40 ...

  8. linux 打开FTP 功能

    http://blog.csdn.net/jay285979220/article/details/62216622 今天在linux上安装完了vsftpd后,使用root账号一直无法登陆到服务器上. ...

  9. 转 PHP 正则表达式 以及案例

    2.Perl兼容的语法扩充 Perl兼容的正则表达式的模式类似于Perl中的语法,表达式必须包含在定界符中,除数字.字母.反斜线外的任何字符都可以作为定界符.例如,表达式’/^(?i)php[34]/ ...

  10. [转]Android应用自动更新功能的代码实现

    本文转自:http://www.cnblogs.com/coolszy/archive/2012/04/27/2474279.html 由于Android项目开源所致,市面上出现了N多安卓软件市场.为 ...