最近,一位同事不得不从脚本中调用.NET 2.0 Web服务。我们注意到我们必须通过AJAX扩展或升级到3.5来放置[ScriptService]属性。
这就是我所能找到的 - 没有人解释它在幕后做了什么!
任何人都可以启发我吗?
由于 邓肯
答案 0 :(得分:2)
严格地说,您不需要对Web服务执行任何操作,以使其可以从脚本中调用。
见这里: How to call web service using vbscript (synchronous)?
Web服务只是一个可通过远程协议(通常是基于Web的协议)寻址的系统。通常这意味着HTTP。可以通过特定URL上的HTTP GET执行简单请求 - URL路径中的段或查询字符串构成Web服务请求的“参数”。
客户端可能会将HTTP GET发送到
http://server/appPath/p1/p2/p3
监听那里的应用程序将负责解压缩该URL,可能将p1,p2,p3映射到查询参数,然后确定如何响应它。
对于更复杂的请求,事务可能是HTTP POST,并且有效内容的格式是XML,JSON或应用程序指定的其他内容。
在这种情况下,URL可能如此:
http://server/appPath/resource1
和POST'd有效负载(如果使用JSON)可能是:
{"Age":35,"FirstName":"Peyton","LastName":"Manning"}
如果使用XML,则可能是:
<person>
<Age>35</Age>
<FirstName>Peyton</FirstName>
<LastName>Manning</LastName>
</person>
您可以在任何编程语言中形成符合这些约束的请求,包括Javascript等脚本。
如果您使用的是SOAP,那么该XML文档需要包装在SOAP信封中。 有关示例,请参阅Calling WCF service by VBScript(VBScript,但可轻松转换为Javascript)。