我对 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(使用前将#替换为@)