php curl不响应时间,PHP Curl API响应时间与不同的服务器不同

博主在服务器A上使用curl从服务器B的Restful API获取数据时,发现执行时间与API报告的时间相差巨大,达到18秒之多。服务器B的响应时间为0.43秒,而curl的总时间、连接时间和名称查找时间分别为18.7381秒、0.020679秒和0.004144秒。博主寻求可能的解决方案和更有效的API调用方法。
摘要由CSDN通过智能技术生成

我有一个设置,我有两个服务器运行瘦客户端(Apache,

PHP).在服务器A上,它考虑客户端计算机并连接到服务器B以通过Restful API获取数据.两台服务器都在同一网络上.在服务器B上,请求的响应如下所示:

{

"code": 200,

"response_time": {

"time": 0.43,

"measure": "seconds"

}

}

服务器B通过使用微秒来标记请求块的开始和结束来计算每个任务的完成时间.但是当我在服务器A上使用curl来调用服务器B时,我在执行时间方面得到了非常奇怪的结果:

$url = "https://example.com/api";

/*server B address. I've tried IP address as well without any change in results.

This must go over a SSL connection. */

$start_time = microtime(true);

$curl2 = curl_init();

curl_setopt($curl2, CURLOPT_URL, $url);

curl_setopt($curl2, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl2, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($curl2, CURLOPT_USERAGENT, "Server A User Agent");

$result = curl_exec($curl2);

$HttpCode = curl_getinfo($curl2, CURLINFO_HTTP_CODE);

$total_time = curl_getinfo($curl2, CURLINFO_TOTAL_TIME);

$connect_time = curl_getinfo($curl2, CURLINFO_CONNECT_TIME);

$namelookup_time = curl_getinfo($curl2, CURLINFO_NAMELOOKUP_TIME);

$end_time = microtime(true);

$timeDiff = round(((float)$end_time - (float)$start_time), 3);

每次时间检查都会得到以下信息:

$timeDiff = 18.7381 (Using Microseconds)

$total_time = 18.7381 (Transfer Time)

$connect_time = 0.020679

$namelookup_time = 0.004144

所以我不确定为什么会这样.有没有更好的方法从网络中另一台拥有API的服务器获取数据?如果Twitter的Site从另一台不是API服务器的服务器上消耗他们的API就好了.我认为,卷曲到API的时间与API报告的时间非常相似.我知道API没有考虑网络流量和打开连接的速度 – 但是对于我而言,18秒对0.43似乎很奇怪.

这里有什么想法?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值