2015-07-10 126 views
0

我有一个项目,需要从XML API获取数据,我使用php的cUrl从API获取数据。现在,数据下载如下PHP奇怪的事情发生卷曲

  • 1请求获取数据,123KB的文件
  • 1请求来获取数据的特定信息600个字节的文件
  • 1..10请求来获取图像(最大170KB的文件)

的顺序,并从底部到顶部嵌套,得到的数据是一所学校,活动日历和图片库

所以你看,有12个卷曲要求顶

我已经调试了我的应用程序逻辑,并且数据在内存上执行操作的延迟时间为3秒。

通过curl_getinfo获得的时序如下

{ 
    "url":"the url", 
    "content_type":"text\/xml; charset=iso-8859-1", 
    "http_code":200, 
    "header_size":222, 
    "request_size":600, 
    "filetime":-1, 
    "ssl_verify_result":0, 
    "redirect_count":0, 
    "total_time":0.942642, 
    "namelookup_time":8.4e-5, 
    "connect_time":0.179581, 
    "pretransfer_time":0.17966, 
    "size_upload":326, 
    "size_download":12720, 
    "speed_download":13493, 
    "speed_upload":345, 
    "download_content_length":-1, 
    "upload_content_length":326, 
    "starttransfer_time":0.576183, 
    "redirect_time":0, 
    "redirect_url":"", 
    "primary_ip":"81.93.213.42", 
    "certinfo":[ 

    ], 
    "primary_port":80, 
    "local_ip":"192.169.233.75", 
    "local_port":43479 
} 

此数据被编码为JSON,因为这将日志服务器上的推杆。

所以我的问题是为什么如果curl需要1秒来获得来自API的响应,并且我的逻辑在2到3秒之间执行,则响应具有1分钟的时间,下一个50秒在哪里?

有一点需要注意的是,我的网站在godaddy上运行,在https下运行VPS,而在api上运行在HTTP上,这有什么可做的吗?

在此先感谢

+0

感谢布拉德,很好的编辑 – asolenzal

+1

我必须问明显的:你使用curl_multi_ *? – spenibus

+0

你说过12个单独的请求吗? getinfo返回的总时间与最后一次请求有关。所以12 *请求= XXX。将数据缓存在某处。 – David

回答

0

解决,服务器将推迟为卷曲请求数据的下载,所以我讲的托管服务提供商并取消下载的延迟。因此,curl请求被服务器延迟,而不是代码或curl句柄本身。感谢所有评论。