2015-07-10 244 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句柄本身。感謝所有評論。