将一个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;
工具该升级就升级,时间不是用在浪费在这写古董身上的。