Java项目打成jar包后,访问网络出现问题

文章讲述了作者遇到的一个问题,即Java项目打包成jar后,在Windows环境下运行出现400错误,而在IDEA和Linux环境下正常。问题根源在于网络请求部分,通过更换JDK11的HttpClient解决了问题,提示开发者适时更新库以避免类似问题。
摘要由CSDN通过智能技术生成

将一个Java项目达成jar包后,准备当成一个控制台程序用,结果发现在Windows下运行失败,网路的返回值是400错误。但是这个项目在idea使用源代码运行没问题,jar包在linux桌面下也能够正常运行,因此我怀疑碰到了什么我解决不了的问题。

测试连接外网数据库是没有问题的,能够连到数据库上,因此网络是没有问题的,问题只能出现在代码上。

最后JDK11原生的 HttpClient 解决了问题,我之前用的是Jdk1.1带的那个网络请求。

​​​​​​​

Builder builder = HttpClient.newBuilder();
    HttpClient client = builder.connectTimeout(Duration.ofMillis(150000)).build();
    ObjectMapper objectMapper = new ObjectMapper();
    Map<String, String> map = new HashMap<>();
    map.put("data", text);
    String json = objectMapper.writeValueAsString(map);
    HttpRequest request = HttpRequest.newBuilder().header("Content-Type", "application/json").uri(
            URI.create("www.zijidwangzhi.com"))
        .POST(HttpRequest.BodyPublishers.ofString(json)).build();
    HttpResponse<String> response = client.send(request, BodyHandlers.ofString());
    ResultBean resultBean = objectMapper.readValue(response.body().toString(), ResultBean.class);
    return resultBean;

工具该升级就升级,时间不是用在浪费在这写古董身上的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值