代码之家  ›  专栏  ›  技术社区  ›  b_erb

配置HttpClient以用作Restlet客户端

  •  5
  • b_erb  · 技术社区  · 14 年前

    我一直在为我的客户端代码配置Restlet。我正在使用Restlet 2和HttpClient 4。我将扩展jar和HttpClient jars添加到构建路径中,它似乎可以工作。

    ClientResource s表示交互,这是我直接使用Restlet的唯一部分。客户端的具体实例化似乎隐藏在框架实现中。我发现了一些如何配置客户机的提示,但它们都是为Restlet 1.x编写的。

    具体配置如下:

    • clientResource.getClientInfo().setAgent(…) 不起作用。
    • 增加每个主机的并行连接数。
    • 为每个主机启用持久连接和池。显然,Restlet到目前为止在 ,这不是很有效。

    HttpClientHelper ,但我不知道在哪里以及如何添加这个。已经在文档中搜索过了,但是没有找到。

    谢谢你的帮助!

    1 回复  |  直到 14 年前
        1
  •  4
  •   laz    14 年前

    首先,要确保Restlet使用Apache的HttpClient进行连接,需要在类路径上有org.Restlet.ext.HttpClient.jar。第二,你通过了 Context 进入你的构造器 ClientResource ? 如果没有,您将需要:

        final Context context = new Context();
        context.getParameters().set("maxConnectionsPerHost", "20");
    
        final ClientResource requestResource = new ClientResource(context, "http://localhost:8182/request");
        requestResource.getClientInfo().setAgent("Example-Client/1.0");
    

    maxConnectionsPerHost 设置你感兴趣的。还有,打电话 setAgent 像我期望的那样工作。我不知道你的情况会有什么问题。

    关于持久连接,HttpClient似乎会帮您处理这个问题。Restlet使用HttpClient的 ThreadSafeClientConnManager 描述 here 客户资源 利用这个机会。我还没意识到 客户资源