首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【说站】java中HttpClient的错误处理

java中HttpClient的错误处理 说明 1、HttpClient异步请求返回CompletableFuture,其自带的exceptionally方法可用于fallback处理。...2、HttpClient不像WebClient那样,它不会出现4xx或5xx的状态码异常,需要根据自己的情况进行处理,手动检测状态码异常或返回其他内容。...HttpRequest.newBuilder()                 .uri(URI.create("https://twitter.com"))                 .build();           CompletableFuture... result = client.sendAsync(request, HttpResponse.BodyHandlers.ofString()) //                ....System.out.println(resp.statusCode()); //                    } //                })                 .thenApply(HttpResponse

98830
您找到你想要的搜索结果了吗?
是的
没有找到

异步任务实战之远程拉取和风天气API 发布于

所以最后需要做的就是通过CompletableFuture将这两个任务结合起来,并在它们都完成后统一处理由这两个方法返回的最终结果或是异常。...* @param responseBody 经过GZIP解压缩的JSON格式的HttpResponse字符串 * @return 返回一个HttpResponse中获取城市ID的响应式体 */...在Mono.fromCallable()中定义了一个dbReader获取城市ID的任务,它返回了一个Mono响应体对象。...通过CompletableFuture转换为非阻塞任务来解决问题: public Mono getCityCode(String ip, final String key) {...对于不同源IP,考虑到GeoLite2.mmdb中查询是非常快的那么可以将这个城市的天气信息连带数据库的城市名称一并存入Redis中并设置过期时间为1小时,如果其他IP数据库中查出来的都是这个地区那么就直接从缓存中返回结果

20430

07. HTTP接口请求重试怎么处理?

返回:OK"; } 2.1、循环重试 循环重试是最简单最粗暴的方式,就是在请求接口代码中加入循环机制,如果接口请求失败,则循环继续发起接口请求,直到请求成功或接口重试次数达到上限。...= HTTP_CLIENT.execute(request); String result = IoUtil.read(httpResponse.getEntity().getContent(...[] args) { // 示例异步任务,这里使用 supplyAsync,你可以根据实际情况选择其他异步任务 CompletableFuture asyncTask...(asyncTask, 3, 1, TimeUnit.SECONDS); } private static CompletableFuture performAsyncTask...request) { // 模拟处理请求的方法 // 在实际应用中,这里应该是对请求的处理逻辑 // 返回 true 表示处理成功,返回 false 表示处理失败

21810

异步编程 - 07 基于JDK中的Future实现异步编程(下)_当Stream遇见CompletableFuture

比如下面的代码,我们person列表中过滤出年龄大于10岁的人,并且收集对应的name字段到list,然后统一打印处理。在使用非Stream的情况下,我们会使用如下代码来实现。...public static void useStream(List personList) { List nameList = personList.stream...注意,这里通过使用CompletableFuture.supplyAsync方法把rpc的同步调用转换为了异步,也就是把同步调用结果转换为了CompletableFuture对象,所以操作符map返回的是一个...CompletableFuture,然后collect操作把所有的CompletableFuture对象收集为list返回。...代码3futureList获取流,然后使用map操作符把future对象转换为future的执行结果,这里是使用future的join方法来阻塞获取每个异步任务执行完毕,然后返回执行结果,最后使用collect

27630
领券