我正在從我的Android應用程序調用Web服務。我通過應用程序對這項服務進行了許多不同的調用,每個人都在不到一秒的時間內返回數據,除了一個。即使實際的Web服務呼叫接近即時,我的一個呼叫也可能需要一分鐘才能返回數據。線路發生問題:HttpTransportSe.call()方法花費最多一分鐘的時間用於Web服務調用
transport.call(SOAP_ACTION, soapEnvelope);
這被調用並且該值幾乎是瞬間從Web服務返回。但它可能需要長達一分鐘到達下一行:
SoapObject result = (SoapObject) soapEnvelope.bodyIn;
什麼是Web服務返回的數據和應用程序打下一行(上面)之間發生了什麼?有沒有辦法減少這種延遲?有什麼簡單的檢查?
你確定結果快嗎?服務器可能會因爲某種原因保持連接打開 – njzk2 2013-03-22 14:19:30
是的,當我在Web瀏覽器中訪問Web服務位置時,它會立即返回結果。當遠程調試Web服務時,延遲來自當fucntion返回字符串直到'SoapObject result =(SoapObject)soapEnvelope.bodyIn'這一行',因此Web服務沒有延遲。所有其他對Web服務的調用都使用完全相同的代碼來完成請求,只需更改一些變量即可。 – anothershrubery 2013-03-22 14:46:23