【问题标题】:Restlet HTTP Connection PoolRestlet HTTP 连接池
【发布时间】:2015-02-09 19:25:51
【问题描述】:

我对 Restlet 还很陌生,我编写了一小段代码来进行 HTTP 调用。它正在工作,但我想知道如何在其中添加 HTTP 连接池(apache)。 我找不到任何教程或参考代码。

        Client client = new Client(Protocol.HTTP); 
        ChallengeResponse challengeResponse =  new ChallengeResponse(
        ChallengeScheme.HTTP_AZURE_SHAREDKEY,
            acctName,
            accKey);

        String url = RestHelper.createRequestURI("CCC");

        Request request = new Request(Method.GET, url);
        request.setChallengeResponse(challengeResponse);
        Response response = client.handle(request); 

任何参考或帮助将不胜感激。

【问题讨论】:

    标签: restlet restlet-2.0


    【解决方案1】:

    事实上,Restlet 在内部管理客户端连接器级别的池。可以使用客户端的上下文来完成此池的配置。下面的例子描述了如何配置它:

    Client client = new Client(new Context(), Protocol.HTTP);
    client.getContext().getParameters().add("maxConnectionsPerHost","5");
    client.getContext().getParameters().add("maxTotalConnections","5");
    

    您会注意到,这些参数取决于您使用的底层客户端连接器。

    这里有一些有用的链接:

    请注意,如果您使用 ClientResource,则需要共享同一个客户端才能在后台仅拥有一个客户端连接器实例。否则为每个请求实例化一个新的。请参阅下面的实现方式:

    Client client = new Client(new Context(), Protocol.HTTP);
    ClientResource cr = new ClientResource("http://myurl");
    cr.setNext(client);
    

    希望对你有帮助, 蒂埃里

    【讨论】:

    • 感谢您的参考,我会尝试这些选项。
    猜你喜欢
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多