vc6.0调用webservice中一个函数

p_flag 2014-08-09 10:37:14
VC6.0基于MFC调用webservice中的一个函数:地址:http://localhost:8080/ryptWS 方法名:String getmessage(String data)
知道要用soap,但是网上的例子没怎么看明白,在此向各位求助,先谢过大家
...全文
251 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
erick08 2014-08-15
  • 打赏
  • 举报
回复
url是http://127.0.0.1:9080/helloWorld?wsdl 方法是 String sayHi(String text) http://demo.com/是从http://127.0.0.1:9080/helloWorld?wsdl找的

	ISoapSerializerPtr Serializer; 
	ISoapReaderPtr Reader; 
	ISoapConnectorPtr Connector; 

	// 与Web服务连接
	Connector.CreateInstance(__uuidof(HttpConnector30)); 
	Connector->Property["EndPointURL"] = "http://127.0.0.1:9080/helloWorld?wsdl"; 
	Connector->Connect(); 

	//指定webservice的网络资源路径
	// 开始消息
	Connector->Property["SoapAction"] = "http://demo.com/sayHi";	//_wsNameSapce + _wsMethodName   _wsNameSapce参考?wsdl的结果
	Connector->BeginMessage(); 

	// 创建SoapSerializer对象
	Serializer.CreateInstance(__uuidof(SoapSerializer30)); 

	// 将serializer连接到connector的输入字符串
	Serializer->Init(_variant_t((IUnknown*)Connector->InputStream)); 
	// 创建SOAP消息
	Serializer->StartEnvelope("","",""); 

	
	Serializer->StartBody(L""); 

	//构建一个soap协议报文
	Serializer->StartElement("sayHi","http://demo.com/","","");

	string strName = "testtest";
	Serializer->StartElement( L"text" , "" , "" , "" ) ;
	Serializer->SoapAttribute("text", "", "xs:string", "");
	Serializer->WriteString(strName.c_str()); 
	Serializer->EndElement(); 

	Serializer->EndElement(); 
	Serializer->EndBody(); 
	Serializer->EndEnvelope(); 

	try
	{
		// 将该消息发送给web服务
		Connector->EndMessage(); 
	}
	catch( CException * ce )
	{
		ce->ReportError( ) ;
		ce->Delete( ) ;
		return ;
	}
	catch( ...) 
	{
		return ;
	}

	//通过http协议发送请求和接受响应
	// 读取响应
	Reader.CreateInstance(__uuidof(SoapReader30)); 

	// 将reader联接到connector的输出字符串
	Reader->Load(_variant_t((IUnknown*)Connector->OutputStream), ""); 

	// 显示结果
	CString strMsg ;

	IXMLDOMDocumentPtr domeDocument = Reader->GetDom( ) ;
	strMsg.Format( "%s" , (const char*)domeDocument->xml ) ;

	strMsg.Replace( "<?xml version=\"1.0\"?>" , "<?xml version=\"1.0\" encoding=\"GB2312\"?>" ) ;
	AfxMessageBox( strMsg ) ;
用gSoap的方式要更方便
shio6744 2014-08-14
  • 打赏
  • 举报
回复
<p class="MsoNormal" style="text-indent:21.0pt;">
邮件营销是一种经典的营销方式,虽然随着邮箱功能的人性化以及营销方式的增多,邮件营销要实现好的效果,已经不是那么容易,但是邮箱作为人们日常应用非常普遍的交互工具,在网络营销中依然发挥着重要作用。且出现了众多辅助企业邮件营销的软件,邮件营销软件哪个最有效?是很多用户的疑问,笔者接下来就说说自己的一些看法:
</p>
<p class="MsoNormal" style="text-indent:21.0pt;">
<span> </span>
</p>
<p class="MsoNormal" style="margin-left:39.0pt;text-indent:-18.0pt;">
<span>1、  </span><span>采集精准邮箱</span>
</p>
<p class="MsoNormal" style="margin-left:21.0pt;">
<span> </span>
</p>
<p class="MsoNormal" style="text-indent:21.0pt;">
邮件营销是针对众多的用户邮箱来进行信息发送,那么这些用户邮箱从何而来。有的用户会为了方便直接在网上购买,事实上,这样的客户是不精准的,你不知道他属于哪个行业,哪个年龄层次,是不是你的精准客户,而如果通过关键词去采集,那么这类用户邮箱多少都会与你的行业有相似性。所以好的邮件营销软件,首先应该具备采集精准邮箱的功能,通过输入关键词,就能采集精准用户邮箱。
</p>
<p class="MsoNormal" style="text-indent:21.0pt;">
<span> </span>
</p>
<p class="MsoNormal" style="margin-left:39.0pt;text-indent:-18.0pt;">
<span>2、  </span><span>发送成功率</span>
</p>
<p class="MsoNormal" style="margin-left:21.0pt;">
<span> </span>
</p>
<p class="MsoNormal" style="text-indent:21.0pt;">
邮件营销的前提是邮件能够成功发送到用户收件箱中,让用户打开邮箱就能浏览到你的邮件,所以对于邮件营销软件来说,邮件发送的成功率是非常重要的。而且好的邮件营销软件,除了发送邮件的成功率要高,还需要保证,发送的邮件是成功地进用户的收件箱而不是进垃圾箱。
</p>
<p class="MsoNormal" style="text-indent:21.0pt;">
<span> </span>
</p>
<p class="MsoNormal" style="margin-left:39.0pt;text-indent:-18.0pt;">
<span>3、  </span><span>发送效果跟踪</span>
</p>
<p class="MsoNormal" style="margin-left:21.0pt;">
<span> </span>
</p>
<p class="MsoNormal" style="text-indent:21.0pt;">
用户在进行邮件营销过程中,会发送数量众多的邮件,少则几千,多则上万。那么发布的这些邮件是真的被用户收到了还是石沉大海,这个时候就涉及到发布效果的跟踪。现在很多邮件营销软件也开始关注这块,<span>skycc</span>邮件营销软件对邮件是否进用户收件箱,是否被用户浏览,是否被删除,浏览或者删除的时间等情况进行有效跟踪,及时发现问题加以解决,让邮件营销更高效。
</p>
<p class="MsoNormal">
<span> </span>
</p>
zhuyf87 2014-08-10
  • 打赏
  • 举报
回复
Serializer->StartElement("getWeather", "http://WebXml.com.cn/", "", "Soap");
最后一个参数是名字空间,相应的SOAP请求是这样的:
POST /WebServices/WeatherWS.asmx HTTP/1.1
Host: webservice.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://WebXml.com.cn/getWeather"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getWeather xmlns="http://WebXml.com.cn/">
      <theCityCode>string</theCityCode>
      <theUserID>string</theUserID>
    </getWeather>
  </soap:Body>
</soap:Envelope>
p_flag 2014-08-10
  • 打赏
  • 举报
回复
SOAP StartElement函数中的命名空间是什么意思,该如何写这个参数呢,请教
p_flag 2014-08-09
  • 打赏
  • 举报
回复
有人用过吗,求助

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧