• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > VC调用webservers作为客户端

VC调用webservers作为客户端

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了webservers,webservers接口,c webservers,什么是webservers,webservers post 传参等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: VC 调用webservers 作为客户端
描述:

#import "msxml4.dll" 
using namespace MSXML2;
#import "d:\Program Files\Common Files\MSSoap\Binaries\mssoap30.dll" \
exclude("IStream", "ISequentialStream", "_LARGE_INTEGER", \
"_ULARGE_INTEGER", "tagSTATSTG", "_FILETIME")
using namespace MSSOAPLib30;
CString BeginSoap(CString leadnum, CString tagnum, CString time, CString la, CString lot, CString dose, CString type, CString WebUrl)
{
ISoapConnectorPtr SoapConnector;
ISoapSerializerPtr Serializer;
ISoapReaderPtr Reader;
CString wenurl;
HRESULT hr;
try
{
//创建SoapConnector类的对象
SoapConnector.CreateInstance(__uuidof(HttpConnector30)); 
//指定Web服务的地址
//SoapConnector->Property ["EndPointURL"] =(LPSTR)(LPCTSTR)WebUrl;
SoapConnector->Property ["EndPointURL"] ="http://mrms.kvsoft.cn:88/ydfsy/sws/fsy/ydfsyremote.wsdl";
//与Web服务连接
hr=SoapConnector->Connect();
if(FAILED(hr)) return "";
//指定Web服务完成的操作
wenurl.Format("%s/LeadChestRequest", WebUrl);
SoapConnector->Property ["SoapAction"] = "http://mrms.kvsoft.cn:88/ydfsy/sws/fsy/LeadChestRequest";
//SoapConnector->Property ["SoapAction"] = "";
//准备发送消息给web服务
SoapConnector->BeginMessage();
// 创建SoapSerializer对象
Serializer.CreateInstance(__uuidof(SoapSerializer30)); 
// ??serializerá??óμ?connectorμ?ê?è?×?·?′?
Serializer->Init(_variant_t((IUnknown*)SoapConnector->InputStream)); 
// 创建soap消息
//Serializer->StartEnvelope("soap","","");
Serializer->StartEnvelope("","","");
Serializer->StartBody(""); 
Serializer->StartElement("LeadChestRequest","http://www.dtiot.cn/fsy/schemas","","");
//Serializer->StartElement("LeadChestRequest","","","");
Serializer->StartElement("leadNum","","",""); 
Serializer->WriteString("QX000001");
Serializer->EndElement();
Serializer->StartElement("tagNum","","",""); 
Serializer->WriteString("BQ000001");
Serializer->EndElement();
Serializer->StartElement("collectionDate","","",""); 
Serializer->WriteString("2011-12-20 8:58:40");
Serializer->EndElement();
Serializer->StartElement("lat","","",""); 
Serializer->WriteString("40.23");
Serializer->EndElement();
Serializer->StartElement("lon","","",""); 
Serializer->WriteString("118.123");
Serializer->EndElement();
Serializer->StartElement("doseRate","","",""); 
Serializer->WriteString("0.123");
Serializer->EndElement();
Serializer->StartElement("type","","",""); 
Serializer->WriteString("TP02");
Serializer->EndElement();
Serializer->EndElement();
Serializer->EndBody(); 
Serializer->EndEnvelope();   
hr=SoapConnector->EndMessage(); 
if(FAILED(hr)) return "";
Reader.CreateInstance(__uuidof(SoapReader30)); 
//Reader->Load(_variant_t((IUnknown*)SoapConnector->OutputStream), _T("")); 
Reader->Load(_variant_t((IUnknown*)SoapConnector->OutputStream), ""); 
CString aaa;
aaa.Format("Answer is:%s", (const char*)Reader->RpcResult->text);
return aaa;
//return CString((const char *)Reader->RpcResult->text);
}
catch (_com_error e)
{
CString message;
//TRACE("Error:\n");
//TRACE("Code = %08lx\n", e.Error());
//TRACE("Code meaning = %s\n", (char*) e.ErrorMessage());
//TRACE("Source = %s\n", (char*) e.Source());
//TRACE("Description = %s\n", (char*) e.Description());
message.Format("Code = %08lx\n", e.Error());
message.Format("Code meaning = %s\n", (char*) e.ErrorMessage());
message.Format("Source = %s\n", (char*) e.Source());
message.Format("Description = %s\n", (char*) e.Description());
return (CString)(char*)e.Description();
}
}
void CallService()
{ 
CString str,strWord;
//GetDlgItem(IDC_EDIT1)->GetWindowText(strWord);
str=BeginSoap("QX000001","BQ000001","2011-12-20 8:58:40","40.23","118.123","0.123","TP02","http://mrms.kvsoft.cn:88/ydfsy/sws/fsy/ydfsyremote.wsdl");
// AfxMessageBox(str);
}
void main()
{
   CoInitialize(NULL);
   CoInitialize(NULL);
   CallService();
   CoUninitialize();
}
各位师哥师姐,为啥我接收到的数据总是“Answer is:false”,是数据格式不对,还是???
就是给http://mrms.kvsoft.cn:88/ydfsy/sws/fsy/ydfsyremote.wsdl 发送数据。
参考了http://crazycoder.cn/CDevelopment/Article44544.html 里面的内容 ,现在不知道怎么搞了……


解决方案1:

可以直接用编译器导入WSDL,帮你生成代理类,然后你就可以直接调用对象方法了


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 需要些一个ATLDLL提供给Web调用,应该如何定义接口
  • 高手请进(webservers)
  • VC调用webservers作为客户端

相关文章

  • 2017-06-05 关于基于opencv开发视频播放器
  • 2017-06-04 谁有关于COM的简单源代码?给偶发个吧!大家互相帮忙,如果没有给些相关的资料也成!
  • 2017-06-04 难多多加分activex控件的属性往textareavalue上赋值
  • 2017-06-05 可不可以在程序中加载MSCOMM32ocx这个dll然后使用?
  • 2017-06-04 串口MP3文件发送
  • 2017-06-04 这段代码为什么不行?帮帮忙阿!!
  • 2017-06-05 请帮忙看一下这段话,线呈核心对象
  • 2017-06-04 那位大侠能告诉我什么是SDK?COM怎么写吗?
  • 2017-06-05 谁有MFC常规动态链接库的例程?
  • 2017-06-05 求hook捕捉鼠标移动消息

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何在windows的桌面上创建个按钮?
    • 谁能帮我看看这个错误信息?
    • 请高手看一下程序,关于线程
    • 如何在对生成的变量名对应的变量赋值
    • 请问下面一行代码是什么意思啊?高分!!!
    • dshoweffectfilter的问题
    • 我写COM时,想用CInternetSession类,引#include"afxineth"出现如下错误,请求帮助
    • vc制作OpenInventor控件
    • 《COM技术内幕》指针类型转换
    • 关于COM中字符的处理问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有