在Idea上看到这个东西

然后把接口地址抓了出来
1 | https://download.jetbrains.com/jdk/feed/v1/jdks.json.xz |
更新:
发现接口末尾可以不加.xz,能直接拿到json
1 | https://download.jetbrains.com/jdk/feed/v1/jdks.json |
Have Fun!
相关推荐
2021-03-26
在RestTemplate中使用HttpComponentsClientHttpRequest解析gzip编码
Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens 今天在使用RestTemplate调用接口时发现无法对Gzip的数据进行解压,然后找到了这篇文章: 让RestTemplate使用和解析gzip编码。 原因 文章提到RestTemplate默认不使用Gzip,也不解析 Gzip编码结果,这是因为RestTemplate默认SimpleBufferingClientHttpRequest类。通过idea可以看到RestTemplate的继承关系 在HttpAccessor类中,ClientHttpRequestFactory这个private属性的默认值为一个SimpleClientHttpRequestFactory对象 RestTemplate在获取数据时getForObject、getForEntity、postForObject、postForEntity、exchange等方法最终都是调用exe...
2024-08-09
实现一个能够自动删除的临时文件
背景 前段时间在弄关于文档转图片然后进行处理的工作,其中由于图片内容会多次读取,所以将其持久化在本地。 但是由于图片是临时文件,所以需要在使用完之后删除。 最初的实现是使用try-with-resource,但是随着流程变得复杂,图片的生命周期变得不可控,所以需要一个更好的解决方案。 思路 利用Cleaner的特性,在文件被GC回收时,进行删除操作。需要注意不要在cleaner中应用this对象,否则会导致内存泄漏。 利用MDC保存当前线程的MDC信息,这样cleaner执行时,用于跟踪上下文的MDC可以保留,使得traceId等信息不会丢失。 实现 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556package com.haizhi.metis.document.parse.common;import java.io.File;import java.io.IOException;import java.lang.re...
2024-07-15
让自定义注解支持配置属性注入
背景 在写代码的过程中需要用到一些自定义annotation,但是annotation中的String类型的value需要字符串常量,于是想是否可以将@Value所支持的表达式移植到自定义注解中。 实现 Spring中的具体实现 org.springframework.beans.factory.support.DefaultListableBeanFactory#doResolveDependency 123456789101112131415161718Object value = getAutowireCandidateResolver().getSuggestedValue(descriptor);if (value != null) { if (value instanceof String) { String strVal = resolveEmbeddedValue((String) value); BeanDefinition bd = (beanName != null && cont...
2021-10-08
使用Fiddler对Java程序进行抓包
Fiddler是常用的一个抓包工具,可以通过这个工具对Java程序的进行抓包。 第一步是设置代理 1234static { System.setProperty("proxyHost", "localhost"); System.setProperty("proxyPort", "8888");} 或者添加JVM参数:-DproxyHost=localhost -DproxyPort=8888 网上很多教程是将Http的代理和Https的代理分开,实际上通过proxyPort和proxyHost两个属性能够一次性设置Http的代理和Https的代理。 分析源码中的DefaultProxySelector类可以看到这段话: 12345678910111213141516171819202122232425262728/** * This is where we define all the valid System Properties we have to * s...
2022-06-12
EasyExcel与@Accessors,@Builder与@SuperBuilder
在使用EasyExcel时发现在解析Excel文件时,发现单元格中的数据无法被注入到对象中,随后去EasyExcel项目的issues区发现这是个老问题了:https://github.com/alibaba/easyexcel/issues?q=Accessors 原因分析 在接收Excel数据的对象的构造方法上打断点,并查看方法的调用链可以看到这个方法: 123456789101112131415161718192021222324252627282930private Object buildUserModel(Map<Integer, ReadCellData<?>> cellDataMap, ReadSheetHolder readSheetHolder, AnalysisContext context) { ExcelReadHeadProperty excelReadHeadProperty = readSheetHolder.excelReadHeadProperty(); Object resultModel...
2022-06-18
如何设置Java应用的时区
最近研究时区问题的时候发现Linux上的Java时区设置简单中带着一些不简单,翻了翻jvm的源码把这部分的逻辑理清楚了 JVM如何获取获取当前时区 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 public static TimeZone getDefault() { return (TimeZone) getDefaultRef().clone();}/*** Returns the reference to the default TimeZone object. This* method doesn't create a clone.*/static TimeZone getDefaultRef() { TimeZone defaultZone = defaultTimeZone; if (defaultZone == ...
评论