2015-03-31 83 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