0

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

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

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

谢谢。

4

2 回答 2

1

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

也就是说,我不认为更大的响应时间是由于这个原因。您今天是否尝试运行 XML over HTTP 版本以获得合理的比较点?也许该网站只是忙。

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

于 2008-09-15T20:52:47.210 回答
1

好吧,ASP.NET 脚本可能会做一些不同于 C# 代码的事情。尝试捕获每个原始 HTTP 请求并回放它们。他们的表现一样吗?如果是这样,那么很可能是客户端代码存在差异。我的猜测是,一个是直接的 HTTP get/post 请求,另一个是 SOAP over HTTP(s)。

其他需要注意的事项: 1) 你是在为 ASP.NET 生产和为 C# 测试系统,还是它们都是生产的?2)假设两者都通过HTTPS。

基于 SOAP 的 Web 服务通常更“重”——尤其是如果您的请求最终执行 WS-*、签名等。您是否必须通过提供密钥/x.509 或其他凭据来签署您的 C# 请求?

根据对上述一些基础知识的回答,这个讨论可以有很多方法。

于 2008-09-15T20:54:23.680 回答