2015-03-03 89 views
0

如何使用TIdHTTP同時發送多個帖子請求?德爾福 - indy在同一時間使用多個IdHTTP發送帖子

lHTTP1.Post('http://'+cURL+'/build.php?',lParamList, ResponseContent); 
lHTTP2.Post('http://'+cURL+'/build.php?',lParamList, ResponseContent); 
lHTTP3.Post('http://'+cURL+'/build.php?',lParamList, ResponseContent); 

我試過使用三個線程來做到這一點,但每個帖子消息之間有一秒鐘的延遲。

如何在同一秒內發送所有發佈消息?

+0

在3個併發線程中執行此操作不會自動使所有3個線程同時工作。還有其他因素,如網絡流量,CPU /硬盤速度等等。 – 2015-03-03 00:43:06

回答

2

由於TIdHTTP是一個阻塞組件,使用單獨的線程是正確的方法。每個帖子的延遲時間可能與操作系統調度線程的方式有關,或者可能與網絡延遲有關,或者您可能使用的是具有內部延遲的Indy版本(例如,如果HTTP服務器發送的響應爲3xx響應到POST請求,TIdHTTP等待5秒以確保服務器發送正確的響應主體 - 一些有問題的服務器不會)。很難知道你的1秒延遲實際發生在哪裏。你將不得不調試/分析你的項目以找出問題,我們不能爲你做到這一點。