Restlet HTTP 连接池

2024-01-05

我对 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 在内部管理客户端连接器级别的池。可以使用客户端的上下文来完成此池的配置。以下示例描述了如何配置它:

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

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

以下是一些有用的链接:

  • 与连接器相关的文档:http://restlet.com/technical-resources/restlet-framework/guide/2.3/core/base/connectors http://restlet.com/technical-resources/restlet-framework/guide/2.3/core/base/connectors
  • 包含 HTTP 客户端连接器参数的 Javadoc:http://restlet.com/technical-resources/restlet-framework/javadocs/2.3/jse/ext/org/restlet/ext/httpclient/HttpClientHelper.html http://restlet.com/technical-resources/restlet-framework/javadocs/2.3/jse/ext/org/restlet/ext/httpclient/HttpClientHelper.html

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

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

希望能帮助到你, 蒂埃里

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Restlet HTTP 连接池 的相关文章

随机推荐