Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

TheLandscapeBe/tinyurl-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

24 Commits

Repository files navigation

短连接服务客户端

短连接仓库地址:短连接服务
https://github.com/TheLandscapeBe/tinyurl

#使用方法 1 maven依赖

<dependency>
 <groupId>com.github.fofcn.tinyurl</groupId>
 <artifactId>tinyurl-client</artifactId>
 <version>v2.0.2</version>
</dependency>

2 直接调用客户端

public class TinyUrlClientTest {
 private static TinyUrlClientConfig clientConfig;
 private static HttpPoolConfig httpPoolConfig;
 private static TinyUrlClient tinyUrlClient;
 @BeforeClass
 public static void beforeClass() {
 clientConfig = TinyUrlClientConfig.builder()
 .appId("1594708959736")
 .key("1594708959736")
 .host("http://localhost:80")
 .build();
 httpPoolConfig = HttpPoolConfig.builder()
 .connectTimeout(60000)
 .readTimeout(6000)
 .maxTotal(100)
 .maxPerRoute(100)
 .defaultMaxRoute(100)
 .build();
 tinyUrlClient = new TinyUrlClientImpl(clientConfig, httpPoolConfig);
 tinyUrlClient.initialize();
 }
 @Test
 public void testShorten() {
 TinyUrlParam tinyUrlParam = new TinyUrlParam();
 tinyUrlParam.setDomain("s.xxx.com");
 tinyUrlParam.setUrl("https://mvnrepository.com/artifact/org.slf4j/slf4j-api/1.7.30");
 TinyUrlObject tinyUrlObject = tinyUrlClient.shorten(tinyUrlParam);
 if (ObjectUtil.isNull(tinyUrlObject)) {
 Assert.fail();
 }
 Assert.assertNotNull(tinyUrlObject.getUrl());
 System.out.println(tinyUrlObject.getUrl());
 }
}

3 在spring boot中使用
3.1 配置RestTemplate

@Configuration
public class RestTemplateConfig {
 @Bean
 public RestTemplate createAndConfigRestTemplate() {
 SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
 requestFactory.setConnectTimeout(60000);
 requestFactory.setReadTimeout(6000);
 RestTemplate restTemplate = new RestTemplate(requestFactory);
 return restTemplate;
 }
}

3.2 配置TinyUrl客户端

@Data
@Configuration
@ConfigurationProperties(prefix = "tinyurl")
public class TinyUrlClientConfigurer {
 /**
 * 域名,多个域名以逗号分割
 */
 private String host;
 /**
 * appid
 */
 private String appId;
 /**
 * app密钥
 */
 private String key;
 /**
 * 连接超时时间
 */
 private int connectTimeout = 60 * 1000;
 /**
 * 读取超时时间
 */
 private int readTimeout = 60 * 1000;
 /**
 * 最大连接数
 */
 private int maxTotal = 100;
 /**
 * 默认最大路由
 */
 private int defaultMaxRoute = 100;
 /**
 * 每个route最大连接数
 */
 private int maxPerRoute = 100;
 /**
 * 重试次数,默认为0
 */
 private int retryTimes = 0;
 /**
 * 链接资源释放周期,默认为1分钟
 */
 private int evictInterval = 60 * 1000;
 /**
 * 默认域名
 */
 private String domain;
 @Resource
 private RestTemplate restTemplate;
 @Bean
 public TinyUrlClient create() {
 TinyUrlClientConfig clientConfig = TinyUrlClientConfig.builder()
 .appId(appId)
 .key(key)
 .host(host)
 .restTemplate(restTemplate)
 .build();
 HttpPoolConfig httpPoolConfig = HttpPoolConfig.builder()
 .connectTimeout(connectTimeout)
 .readTimeout(readTimeout)
 .maxTotal(maxTotal)
 .maxPerRoute(maxPerRoute)
 .defaultMaxRoute(defaultMaxRoute)
 .evictInterval(evictInterval)
 .retryTimes(0)
 .build();
 TinyUrlClient tinyUrlClient = new TinyUrlClientImpl(clientConfig, httpPoolConfig);
 tinyUrlClient.initialize();
 return tinyUrlClient;
 }
}

3.3 调用TinyUrlClient

TinyUrlParam tinyUrlParam = new TinyUrlParam();
tinyUrlParam.setDomain(domain);
tinyUrlParam.setUrl(realUrl);
TinyUrlObject tinyUrlObject = tinyUrlClient.shorten(tinyUrlParam);
System.out.println(tinyUrlObject.getUrl())

About

短连接服务客户端

Resources

License

Stars

Watchers

Forks

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /