我集成了五个航运API,如UPS,联邦快递,PUROLATOR,TNT,加拿大邮政到我的网站在简单的PHP。我发送HTTP请求,并以xml格式请求返回,以获得运费。我已经为每个API创建了类,并创建了函数来设置登录和维度参数dynamically...as,如下所示
<?php
if($sub){
$canadaPostRate->setCredentials($CPC_number,$length,$width,$height,$weight,$from,$to);
$fedexRate->setCredentials($user,$key,$account_number,$shipping_number,$weight,$height,$width,$length,$from,$to);
// similary for all other API
}
?>我已经从这些API得到了正确的响应,但问题是它需要太长的时间,因为它至少需要1.5分钟才能显示输出。有什么解决方案可以最小化响应时间吗?
发布于 2014-02-20 17:29:38
我想到了一件事(如果是为了演示):不要在一个请求中调用5个外部API。使用AJAX请求来单独获取运费。现在,在查询FedEx之前,您需要等待CanadaPost响应。如果你使用了5个不同的请求,你就不需要等待一个请求完成后再启动另一个请求。
但实际上,没有更多的信息是不可能说的。你有没有对你的代码做过跟踪,看看延迟在哪里?真的只是HTTP请求吗?是你解析数据的方式吗?是数据库连接速度慢吗?在api调用的不同时间点开始记录日志,时间以毫秒为单位,例如在HTTP请求之前、之后、返回数据之前等等。
发布于 2014-02-21 09:19:33
您也可以使用另一个发布API来一次性处理所有这些调用。像EasyPost或Postmaster之类的吗?
https://stackoverflow.com/questions/21903196
复制相似问题