工具: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. php 发送邮件(实例)

    html部分 <!DOCTYPE html> <html> <head> <title></title> <script type=& ...

  2. iOS中UIWebView使用JS交互

    iOS中偶尔也会用到webview来显示一些内容,比如新闻,或者一段介绍.但是用的不多,现在来教大家怎么使用js跟webview进行交互. 这里就拿点击图片获取图片路径为例: 1.测试页面html & ...

  3. 【书评】【不推荐】《TensorFlow:实战Google深度学习框架》(第2版)

    参考书 <TensorFlow:实战Google深度学习框架>(第2版) 这本书我老老实实从头到尾看了一遍(实际上是看到第9章,刚看完,后面的实在看不下去了,但还是会坚持看的),所有的代码 ...

  4. Ubuntu终端查看系统时间,以及日历

    时间:  date 日历: cal https://blog.csdn.net/zhengchaooo/article/details/79500032 修改时区以及时间 查看时区 date -R 修 ...

  5. POJ-1062-昂贵的聘礼(枚举)

    链接:https://vjudge.net/problem/POJ-1062 题意: 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为 ...

  6. 最耗资源的10条sql

    ----当前最耗资源的10个cpu select * from (select address,hash_value, round(cpu_time/1000000) cpu_time_s, roun ...

  7. requests发送HTTPS请求(处理SSL证书验证)

    1.SSL是什么,为什么发送HTTPS请求时需要证书验证? 1.1 SSL:安全套接字层.是为了解决HTTP协议是明文,避免传输的数据被窃取,篡改,劫持等. 1.2 TSL:Transport Lay ...

  8. Java微服务 进程间通信

    目录 进程间通信 同步调用 异步调用 实现方式 进程间通信 同步调用 同步调用比较简单,一致性强,但是容易出调用问题,出现单点故障,因为之间相互依赖,比如RPC必须要依赖的模块上线可用,己方才能调用, ...

  9. Oracle 修改密码(忘记登录密码,用户System)

    1.修改计算机环境变量,把oracle服务端路径放在最前面 2.输入cmd 3.输入命令:sysplus /nolog SQL>conn sys/syspwd as sysdba SQL> ...

  10. 在WIN7、WIN8中,将快捷方式锁定到任务栏,C#

    其实很简单,使用 API 函数 ShellExecute,就可以解决这个问题. 首先添加引用 using System.Runtime.InteropServices; 代码如下: using Sys ...