2015-03-31 87 views
0

我使用restlet客戶端向服務器發送休息請求。如何加速restlet客戶端獲取響應?

public class RestHandler { 
    protected ClientResource resource  = null; 
    protected Client   client   = null; 

    public void connect(final String address, 
         final Protocol protocol){ 
     final Context context = new Context(); 
     if (client == null) { 
      logger.info("Create Client."); 
      client = new Client(context, protocol); 
     } 
     resource = new ClientResource(context, new Reference(protocol, address)); 
     resource.setNext(client); 
     resource.setEntityBuffering(true); 
    } 
} 

在其子類中,使用resource.get()/ post/put/delete發送休息請求。

我發現響應在第一次(5-10s)回來很慢。

然後在接下來的幾個請求中它會更快。

但等待大約10分鐘後,我再次發送請求,它又變得緩慢。

有什麼方法可以讓響應回來更快嗎?

+0

你肯定Restlets這裏有問題嗎? – 2015-03-31 07:54:04

+0

使用Firefox瀏覽器發送休息請求要快得多。所以我認爲可能有一些方法來加速restlet客戶端 – Sandy 2015-03-31 08:03:43

+0

broswer依賴關係聽起來很像JavaScript AJAX問題,而不是服務器端和Restlets。 – 2015-03-31 08:07:11

回答

0

您可以嘗試使用其他客戶端連接器。這可能是你的問題的原因,特別是如果你使用默認的問題。請注意,默認值僅用於開發。

此頁面爲您提供所有可用的客戶端連接器:http://restlet.com/technical-resources/restlet-framework/guide/2.3/core/base/connectors

關於客戶端連接器,您可以配置屬性來調整它們。要使用客戶端連接器,只需將相應的Restlet擴展插入到類路徑中即可。也許你可以試試擴展org.restlet.ext.httpclient

此答案可以幫助您瞭解連接器配置和屬性:Restlet HTTP Connection Pool

希望它可以幫助你, 蒂埃裏

+0

非常感謝。我將org.restlet.ext.httpclient.jar添加到類路徑中。 但是沒有HttpClient類,只有HttpClientHelper。 如何使用它來創建apach http客戶端? – Sandy 2015-04-01 02:35:17

+0

不客氣!實際上,這對您使用的代碼沒有影響。客戶端連接器由Restlet本身在引擎蓋下注冊。如果你想確定是這種情況,只需查看'Engine.getInstance()。getRegisteredClients()'中的客戶端連接器列表。你會看到'org.restlet.ext.httpclient'的擴展名。如果您想傳遞參數來配置它,只需在創建客戶端時使用用作參數的上下文。希望它可以幫助你。 – 2015-04-01 09:13:31