求 SOAP 的VC客户端程序

soon 2004-11-04 05:51:12
看了sdk的一些sample感觉要写程序还差得比较远。
各位谁有现成的调用示例 学习一下!多谢
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
redez 2004-11-23
  • 打赏
  • 举报
回复
http://www.vckbase.com/code/listcode.asp?mclsid=22&sclsid=&page=2

SOAP 2.0 SDK 配套源代码

soon 2004-11-23
  • 打赏
  • 举报
回复
没有人能回答
还是我的问题太浅 不屑回答?
soon 2004-11-05
  • 打赏
  • 举报
回复
上面的code 我明白

我想知道,调用时如何帮定复杂的数据类型?比如webservice用c#写参数中有CDatetime类型
我在vc中如何传递这种参数给webservice。
调用成功以后,返回的数据应该在soap包中,其中描述的数据如何与vc中的数据类型如何对应起来

真不知道我描述清楚这个问题没有。
shusong1228 2004-11-04
  • 打赏
  • 举报
回复
POST /WebServiceSample/Service1.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.wellhope.com/webservices/retstr"

<? 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>
<retstr xmlns="http://www.wellhope.com/webservices">
<instr>string</instr>
</retstr>
</soap: Body>
</soap: Envelope>

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<? 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>
<retstrResponse xmlns="http://www.wellhope.com/webservices">
<retstrResult>string</retstrResult>
</retstrResponse>
</soap: Body>
</soap: Envelope>

VC的soap调用部分代码:
char userStr[256]="<instr xsi:type='xsd:string'>qwert</instr>";
ISoapSerializerPtr Serializer;
ISoapReaderPtr Reader;
ISoapConnectorPtr Connector;

// 与Web服务连接
Connector.CreateInstance(__uuidof(HttpConnector));
Connector->Property["EndPointURL"] = "http://localhost/WebServiceSample/Service1.asmx";
long s = Connector->Connect();

// 开始消息
Connector->Property["SoapAction"] = "http://www.wellhope.com/webservices/retstr";
Connector->BeginMessage();

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

// 将serializer连接到connector的输入字符串
Serializer->Init(_variant_t((IUnknown*)Connector->InputStream));

// 创建SOAP消息
Serializer->startEnvelope("ns1","http://schemas.xmlsoap.org/soap/encoding/","");
Serializer->SoapNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
Serializer->SoapNamespace( "xsd", "http://www.w3.org/2001/XMLSchema");

Serializer->startBody("http://schemas.xmlsoap.org/soap/encoding/");
Serializer->startElement("retstr", "http://www.wellhope.com/webservices/retstr","", "soap"); Serializer->writeXML (userStr);
Serializer->endElement();
Serializer->endBody();
Serializer->endEnvelope();
Connector->EndMessage();
// 读取响应
Reader.CreateInstance(__uuidof(SoapReader));
Reader->Load(_variant_t((IUnknown*)Connector->OutputStream),"");
CString strResult;
strResult=(const char *)Reader->RPCResult->text;

应该可以看懂?

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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