【问题标题】:Cannot instantiate the type HttpClient无法实例化类型 HttpClient
【发布时间】:2010-07-18 19:25:58
【问题描述】:

我已将 .jar 添加到我的库中,并且我还可以在 JAR 中实例化其他类。是什么赋予了?我已经尝试清理项目等。

这是编译器时错误。 Eclipse 不会让我实例化它。

我正在导入正确的库,而不是 sun 版本,并使用由他们的 tutorial 指定的默认构造函数

HttpClient client = new HttpClient();

(Eclipse, mac, Apache HTTP, "HttpClient 4.0.1 (GA)" 下载自here)

【问题讨论】:

  • 请将编译时错误粘贴到您的问题中。
  • 从“答案”移出 1. 我们可以得到错误信息吗? 2. 你在 IDE 中工作吗? 3、你知道编译、IDE运行时、应用运行时的区别吗? 4. 应该不是 Mac 的问题。

标签: java eclipse httpclient


【解决方案1】:

HttpClient 是 4.x 中的接口,以 DefaultHttpClient 为例。

HttpClient httpclient = new DefaultHttpClient();

【讨论】:

  • Warning: The type DefaultHttpClient is deprecated
  • 他们的文档很愚蠢,入门指南仍然没有提到这一点,它只是说The no argument constructor for HttpClient provides a good set of defaults for most situations so that is what we'll use. HttpClient client = new HttpClient();
  • DefaultHttpClient 已弃用
【解决方案2】:

如果您使用的是 4.3,初始化它的一种方法是:

CloseableHttpClient httpclient = HttpClients.createDefault();

4.3 的快速入门指南位于:

http://hc.apache.org/httpcomponents-client-4.3.x/quickstart.html

【讨论】:

    【解决方案3】:
    HttpClient client = new DefaultHttpClient();
    

    他们没有在网站上的任何地方记录这一点,但我已经导入了源代码和 javadoc,这是 HttpClient 类的 Javadoc 中的示例。

    【讨论】:

    • 注意此类项目中的重大更改,在阅读文档、教程等时始终检查正确的版本。好的 API 设计很难,不幸的是,更难避免重大更改。
    • 我想我会坚持使用旧的,因为所有教程都是 3.x
    【解决方案4】:

    请注意,根据您的需求,您应该使用 HttpParams 和/或连接管理器来实例化 httpCleint。当默认设置不适合时,它在多线程访问的情况下很有用。

    您可以在此处的文档中找到更多信息 http://hc.apache.org/httpcomponents-client-ga/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 2014-12-30
      • 2019-07-26
      • 2013-09-27
      • 2015-04-30
      • 2021-03-12
      • 1970-01-01
      相关资源
      最近更新 更多