H__D  

前提

  实际上开发一个Java-SDK的过程,实际上也就是开发一个基本java项目并打包成jar包的过程,然后可以被其它项目引入使用。

开发Java-SDK

  本例介绍开发一个向某一数据接口发送请求并返回结果的SDK

  1、新建一个Maven工程test-sdk-java

    

  2、编辑pom文件,引入需要的jar包,若不需要第三方jar包也可以不引入

    本例使用了hutool工具包

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6 
 7     <groupId>org.example</groupId>
 8     <artifactId>test-sdk-java</artifactId>
 9     <version>1.0-SNAPSHOT</version>
10 
11     <dependencies>
12         <dependency>
13             <groupId>cn.hutool</groupId>
14             <artifactId>hutool-all</artifactId>
15             <version>5.3.7</version>
16         </dependency>
17     </dependencies>
18 
19 </project>

  3、编辑封装类,可以封装一些必要的逻辑

    MyHttpRequest.java

 1 package com.test.api.bean;
 2 
 3 import cn.hutool.http.HttpRequest;
 4 import cn.hutool.http.HttpResponse;
 5 
 6 public class MyHttpRequest {
 7 
 8     private HttpRequest httpRequest;
 9 
10     public MyHttpRequest(String url){
11         httpRequest = HttpRequest.get(url);
12         // 可以封装其他逻辑
13     }
14 
15     public MyHttpResponse execute(){
16         if(httpRequest == null) {
17             throw new NullPointerException("httpRequest is empty !");
18         }
19         HttpResponse httpResponse = httpRequest.execute();
20         MyHttpResponse myHttpResponse = new MyHttpResponse();
21         myHttpResponse.setHttpResponse(httpResponse);
22         return myHttpResponse;
23     }
24 
25     public static void main(String[] args) {
26         MyHttpRequest myHttpRequest = new MyHttpRequest("https://www.sina.com");
27         MyHttpResponse myHttpResponse = myHttpRequest.execute();
28         int status = myHttpResponse.getStatus();
29         if(status == 200) {
30             System.out.println(myHttpResponse.body());
31         }else {
32             System.out.println("status === " + status );
33             System.out.println("请求失败!");
34         }
35     }
36 }

    MyHttpResponse.java

 1 package com.test.api.bean;
 2 
 3 import cn.hutool.http.HttpResponse;
 4 
 5 public class MyHttpResponse{
 6 
 7     HttpResponse httpResponse;
 8 
 9     public HttpResponse getHttpResponse() {
10         return httpResponse;
11     }
12 
13     public void setHttpResponse(HttpResponse httpResponse) {
14         this.httpResponse = httpResponse;
15 
16     }
17 
18     public int getStatus() {
19         if(httpResponse == null) {
20             throw new NullPointerException("httpResponse is empty !");
21         }
22         return httpResponse.getStatus();
23     }
24 
25     public String body(){
26         if(httpResponse == null) {
27             throw new NullPointerException("httpResponse is empty !");
28         }
29         return httpResponse.body();
30     }
31 }

  4、编辑一个客户端MyHttpClient.java

 1 package com.test.api;
 2 
 3 import com.test.api.bean.MyHttpRequest;
 4 import com.test.api.bean.MyHttpResponse;
 5 
 6 public class MyHttpClient {
 7 
 8     private static MyHttpClient myHttpClient;
 9 
10     /**
11      * @return  Instance
12      */
13     public static MyHttpClient getInstance() {
14         synchronized (MyHttpClient.class) {
15             if(myHttpClient == null) {
16                 myHttpClient = new MyHttpClient();
17             }
18         }
19         return myHttpClient;
20     }
21 
22     public MyHttpResponse execute(String url){
23         MyHttpRequest myHttpRequest = new MyHttpRequest(url);
24         return myHttpRequest.execute();
25     }
26 
27 }

  5、打包

    1)调用方是maven工程,调用时直接使用依赖引入的方法使用sdk

    使用mvn命令:mvn clean install打包安装

    2)调用方是非maven工程,调用时直使用 sdk jar包

    需要使用其他方式打包:见【Java】Maven 打包可运行jar包

使用Java-SDK

  1、新建一个Maven工程test-sdk-java-test  

  2、引入sdk依赖

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6 
 7     <groupId>org.example</groupId>
 8     <artifactId>test-sdk-java-test</artifactId>
 9     <version>1.0-SNAPSHOT</version>
10 
11     <dependencies>
12         <dependency>
13             <groupId>org.example</groupId>
14             <artifactId>test-sdk-java</artifactId>
15             <version>1.0-SNAPSHOT</version>
16         </dependency>
17     </dependencies>
18 </project>

  3、编写主类进行测试

 1 public class MyMain {
 2     public static void main(String[] args) {
 3         // 配置
 4         String url = "https://www.sina.com";
 5         // 获取SDK中客户端
 6         MyHttpClient myHttpClient = MyHttpClient.getInstance();
 7         // 执行业务
 8         MyHttpResponse myHttpResponse = myHttpClient.execute(url);
 9         int status = myHttpResponse.getStatus();
10         if(status == 200) {
11             System.out.println("请求成功");
12             System.out.println(myHttpResponse.body());
13         }else {
14             System.out.println("status === " + status );
15             System.out.println("请求失败!");
16         }
17     }
18 }

  4、运行主类的主方法

    

 

posted on 2020-06-07 15:18  H__D  阅读(9199)  评论(1编辑  收藏  举报