试图了解Web服务性能

时间:2020-03-05 18:54:30  来源:igfitidea点击:

大约一年前,我买了一个ASP.NET脚本来检索FedEx的运送价值。它构建一个XML字符串,该字符串使用HttpWebRequest传递到FedEx服务器,然后解析原始XML。该脚本的平均响应时间约为900毫秒。

因此,前几天,我在FedEx开发人员中心四处逛逛,发现他们提供了一些使用Web服务的Ccode示例。我使用他们的代码和WSDL文件构建了一个小项目,但惊讶地发现平均响应时间约为2.5秒。

有人可以帮助我了解速度的差异吗?有没有办法使其更快?我对使用Web服务的经验为零。

谢谢。

解决方案

回答

由于验证和所谓的" SOAP信封",Web服务在HTTP调用上的XML方面有一些开销,这增加了一些额外的冗长性。

就是说,我认为响应时间不会因此而增加。我们是否尝试过今天通过HTTP版本运行XML,以获得合理的比较点?可能站点只是很忙。

另一种解释可能是编码错误。你永远都不会知道。

回答

好吧,ASP.NET脚本可能会执行与Ccode不同的操作。尝试捕获每个原始HTTP请求并进行回放。他们表现相同吗?如果是这样,则客户端代码中可能存在差异。我的猜测是,一个是直接的HTTP get / post请求,另一个是基于HTTP的SOAP。

其他要看的东西:
1)我们是要投产ASP.NET和C#的测试系统,还是两者都投产?
2)假设两者都是通过HTTPS进行的。

基于SOAP的Web服务通常要"重得多",特别是如果请求最终以WS- *,签名等方式结束时。我们是否必须通过提供密钥/x.509或者其他凭据来签名Crequest?

取决于对以上一些基本知识的回答,此讨论可以通过多种方式进行。