关于soap 调用xml web服务

cpp_1 2005-09-29 05:13:54
[WebService (Description ="temperature service", Namespace ="http://aaa/webapplication1/webservices")]

[WebMethod]
public double tocelsius(double tf)
{
return (5d/9d)*(tf-32);
}

[WebMethod]
public double tofahrenheit(double tc)
{
return (9d/5d)*(tc+32);
}
这是我写的一个xml web服务

我现在想问
怎么在写一个页面(a.htm)去调用这个xml web服务(用soap,http-post我知道)
...全文
189 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xz_king 2005-10-09
  • 打赏
  • 举报
回复
参考下面的代码 http://ms.mblogger.cn/xuzhong/posts/16578.aspx

演示调用你的tocelsius方法



var objHTTP = new ActiveXObject("MSXML2.XMLHTTP");
var xmlDOC = new ActiveXObject("MSXML.DOMDocument");

var strWebserviceURL = "http://localhost/testss/Service1.asmx/tocelsius";

var strRequest = "tf=111";
objHTTP.Open( "POST", strWebserviceURL, false);


objHTTP.SetRequestHeader( "Content-Type", "application/x-www-form-urlencoded");
objHTTP.Send(strRequest);

var bOK = xmlDOC.load(objHTTP.responseXML);

if(objHTTP.Status==200)
{
xmlDOC.save("c:\\aaa.xml");
}

不过,象这样的方法,在ASP,VB中也一样是可用的。

jimu8130 2005-10-04
  • 打赏
  • 举报
回复
去中文gotdotnet看怎么用
cpp_1 2005-09-29
  • 打赏
  • 举报
回复
http-post
是用一个htm表单来实现的
soap要这么复杂啊?
hjf1223 2005-09-29
  • 打赏
  • 举报
回复
用Javascript 的ActiveXObject来访问.要自己写XML代码详见:http://blog.csdn.net/hjf1223/archive/2005/03/07/313551.aspx

var userID = "3011";
var myService = "http://192.168.7.108/WebService/NewsService.asmx" ;
var myMethod = "http://tempuri.org/HasNewMessage";
var requestHttp = new ActiveXObject("Microsoft.XMLHTTP");
var requestBody = "";
requestBody = requestBody + "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" ;

requestBody = requestBody + "<soap:Envelope ";
requestBody = requestBody + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ";
requestBody = requestBody + "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " ;
requestBody = requestBody + "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n" ;

requestBody = requestBody + " <soap:Body>\n" ;
requestBody = requestBody + " <HasNewMessage xmlns=\"http://tempuri.org/\">\n" ;
requestBody = requestBody + " <userID>" + userID + "</userID>\n";
requestBody = requestBody + " </HasNewMessage>\n";
requestBody = requestBody + " </soap:Body>\n";
requestBody = requestBody + "</soap:Envelope>";
requestHttp.Open("POST",myService,false);
requestHttp.SetRequestHeader("Content-Type","text/xml;charset=gb2312");
requestHttp.SetRequestHeader("SOAPAction",myMethod);
requestHttp.Send(requestBody);// 发送请求
var result = requestHttp.ResponseXML; //返回请求,结果保存在XML中,要拆解出来
var pos1 = result .xml.indexOf("<HasNewMessageResult>");

var pos2 = result .xml.indexOf("</HasNewMessageResult>");
var len = pos2 - pos1 - ("<HasNewMessageResult>").length;

var userName = result.xml.substr(pos1 + ("<HasNewMessageResult>").length , len);
pos1 = result.xml.indexOf("<mailCount>");

pos2 = result.xml.indexOf("</mailCount>");
len = pos2 - pos1 - ("<mailCount>").length;

var mailCount = result.xml.substr(pos1 + ("<mailCount>").length , len);

pos1 = result.xml.indexOf("<pendingCount>");

pos2 = result.xml.indexOf("</pendingCount>");

len = pos2 - pos1 - ("<pendingCount>").length;

var pendingCount= result.xml.substr(pos1 + ("<pendingCount>").length , len);
cjzlxy 2005-09-29
  • 打赏
  • 举报
回复
添加web引用.

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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