无法导入import org.apache.http.client.HttpClient;而自动导入sun.net.www.httpClient

今天在IDEA做项目时,需要导入import org.apache.http.client.HttpClient;而且我在pom.xml中已经了引入了依赖

只是没有指定版本,查看了一下导入的jar包的版本org.apache.http.client.HttpClient.jar是4.5.3,然后疯狂地报错,找不到import org.apache.http.client.HttpClient包。

如果按Alt+Enter,IDEA的快捷键,自动导入包,那就更神奇了,给我导入的是sun.net.www.httpClient,What???

       百度了一个晚上,网上的信息是:

      import org.apache.http.client.HttpClient的版本问题,3.x的版本好像是引入org.apache.httpcomponents即可,4.x的版本,需要引入httpclient,httpcore,common-logging这三个包,其他的自行选择。

      但是我试了好久,都没啥用。可能也是跟我没有指定版本有关系,我没有指定版本是怕springboot的版本不知道适配哪个版本比较合适,怕出现版本冲突不支持,结果恰恰是这点害了我。

这是此次问题的springboot版本:

解决方案:查了一个晚上的百度无果之后,我随便指定了一个版本4.5,结果问题解决了。WHAT????不信邪的我,又删掉了版本号,发现又报错,然后又尝试指定版本号为4.5.3,发现果然报错,然后又指定了一次4.5.2,也报错,最后指定回我随机写的4.5版本,没报错。问题解决。而且我只是写入了这一个,没有引入其他的几个jar,像httpcore,和common-logging之类的都没有引入

使用HttpClient进行POST请求并上传文件的方法如下: 1. 导入HttpClient库,创建HttpClient对象和HttpPost对象。 2. 创建MultipartEntityBuilder对象,并设置字符编码为UTF-8。 3. 添加普通参数和文件参数到MultipartEntityBuilder对象中。 4. 创建HttpEntity对象,并将MultipartEntityBuilder对象的内容添加到其中。 5. 将HttpEntity对象设置为HttpPost对象的实体。 6. 执行HttpPost请求,并获取响应。 以下是一个示例代码: ```java import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.entity.mime.content.StringBody; import org.apache.http.impl.client.HttpClientBuilder; import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; public class HttpClientExample { public static void main(String[] args) throws IOException { HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost httpPost = new HttpPost("http://example.com/upload"); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.setCharset(StandardCharsets.UTF_8); // 添加普通参数 builder.addPart("param1", new StringBody("张三", ContentType.TEXT_PLAIN)); // 添加文件参数 File file1 = new File("file1.txt"); builder.addPart("file1", new FileBody(file1, ContentType.DEFAULT_BINARY)); HttpEntity entity = builder.build(); httpPost.setEntity(entity); HttpResponse response = httpClient.execute(httpPost); // 处理响应 } } ``` 在以上代码中,我们首先导入所需的类和库。然后,创建HttpClientHttpPost对象。接下来,使用MultipartEntityBuilder创建一个包含普通参数和文件参数的实体。最后,将实体设置为HttpPost对象的实体,并执行请求。 请注意,需要根据实际情况修改URL和文件路径。此外,还需要处理响应以及异常情况。 以上就是使用HttpClient进行POST请求并上传文件的方法。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [HttpClient实现POST GET和文件下载](https://download.csdn.net/download/qq_16423529/10344410)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Java后端HttpClient Post提交文件流 及服务端接收文件流](https://download.csdn.net/download/xs296833012/12048431)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [HttpClient post请求上传文件(java)](https://blog.csdn.net/weixin_43078114/article/details/88343155)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值