gpt4 book ai didi

java - org.apache.http.entity.ContentType 不再在 Apache 中了吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:58:34 24 4
gpt4 key购买 nike

出于某种原因,我无法导入 org.apache.http.entity.ContentType。我添加了 Apache HTTP 4.3.3:

  • 客户
  • 核心
  • 公共(public)编解码器
  • http客户端缓存
  • 公共(public)日志记录
  • httpmime
  • 流利的

最初我没有导入所有这些,但由于问题仍然存在,我现在已经全部导入了,并且清理了我的项目并重新构建了它

import org.apache.http.entity.mime.MultipartEntityBuilder; 有效

import org.apache.http.HttpEntity; 也可以

但是

import org.apache.http.entity.ContentType; 根本找不到

我正在使用 Android Studio (IntelliJ),所以我不确定构建路径的答案在这里是否有帮助

我也尝试通过 gradle 链接导入,但我遇到了不同的错误,需要自己更多地控制 jar 文件

最佳答案

org.apache.http.entity.ContentType 位于 org.apache.httpcomponents:httpcore:4.3.x 模块中。但是 org.apache.http.HttpEntity 也是如此。您找到一个而不是另一个的事实很可能意味着它们不是从 v4.3.x JAR 中提取的。 Apache HttpComponents 项目最近移动了很多类。因此,它可能会在旧版/不同版本的 httpcore 中找到 HttpEntity 以某种方式被拉入;没有 ContentType 类的版本。您需要验证它在哪里找到 HttpEntity。有几种方法可以查看从何处引入依赖项。

选项 1最简单的方法之一是将光标放在类上(在导入语句或变量声明中)并打开快速文档(Ctrl+QJ)。在文档对话框的顶部,它将显示找到该类的依赖项:

enter image description here

选项 2如果您的类路径上有一个类的多个实例,此选项将向您显示。打开 Goto Class 对话框(Ctrl+NO)并输入类(class)名称(您可以完全限定或不限定。您甚至可以部分输入名称并使用驼峰式搜索)。在找到的类列表中,右侧将是找到该类的位置。 enter image description here右边是类来自的依赖项。如果显示不止一次,则意味着它在不同的 jar 中被多次拉入。如果另一个依赖项将不同版本的 httpcore 作为传递依赖项引入,则可能会发生这种情况(在使用构建工具时)。所以你需要解决这个问题。请注意,在我的屏幕截图中,我有两个不同版本的 org.springframework.http.HttpEntity 类。一个来自 Spring 3.2.10,一个来自 4.0.6。在这种特殊情况下,这是因为我的项目中有一个基于 Spring 3.2.x 的模块和一个单独的 Spring 4.0.x 模块。所以我对此没有意见,因为它们不会发生冲突,因为它们是独立的模块。但在大多数情况下,这会引起关注。

选项 3您还可以展开并查看 Project 工具窗口中的 External Libraries 节点,以查看某个依赖项是否被拉入两次。

不清楚您的项目是如何配置的。你提到了 gradle,但它似乎更像是事后的想法。如果您使用的是 maven 或 gradle,并且在您的 pom 或构建文件中声明了正确的 httpcore 依赖项,请确保执行重新导入 enter image description here在适当的构建工具窗口上,以便它正确同步并将该模块添加到项目的依赖项中。然后根据上面的信息,看看是否有多个版本的httpcore模块被拉入。

关于java - org.apache.http.entity.ContentType 不再在 Apache 中了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26783615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com