SDK 快速接入 Java

1. SDK接入概要说明

Java SDK基于jdk1.8环境开发,可以下载对应的demo,参考如何使用sdk接入处理。

2. 安装说明

下载SDK离线包YunApiSDK.jar,引用到项目中。

  • 在Eclipse项目中导入
    1. 下载Java SDK开发包。
    2. 解压该开发包。
    3. 将解压后文件夹中的文件 YunApiSDK.jar 拷贝到您的项目中。
    4. 在Eclipse中选择您的工程,右键选择Properties > Java Build Path > Add JARs
    5. 选中拷贝的JAR文件,导入到Libraries中。
  • 在IntelliJ IDEA项目中导入
    1. 下载Java SDK开发包。
    2. 解压该开发包。
    3. 将解压后文件夹中的文件 YunApiSDK.jar 拷贝到您的项目中。
    4. 在IntelliJ IDEA中选择您的工程,右键选择File > Project Structure > Modules > Dependencies > + > JARs or directories
    5. 选中拷贝的JAR文件,导入到External Libraries中。

3. 调用说明

将sdk文件引用到项目中后,可以初始化sdk中YunapiClient对象,使用该对象的方法进行相关业务接入处理。

初始化YunApiClient对象:

// 参数分别为门户网站中 开发接口获取对应信息
//partnerID 接口信息-企业ID
//secretKey 接口信息-密钥
//apiServer 接口信息-接口地址
YunapiClient yunapiClient = new YunApiClient(partnerID, secretKey,apiServer);

4. 业务快速接入

4.1 插入模型转换任务

插入本地路径下的模型:

 String localFile = "F:\\temp\\3Da2d.zip";
InsertTaskBaseRequest insertTaskBaseRequest = new InsertConvertFormatTaskRequest();
insertTaskBaseRequest.priority = 1;
//设置插入主文件名称
insertTaskBaseRequest.mainFile = "3D.sldprt";
//插入任务
InsertTaskResponse res = yunapiClient.InsertTaskLocalFile(localFile,insertTaskBaseRequest);

插入HTTP路径下的模型:

String httpFile = "http://xxx/3Da2d.zip";
InsertTaskRequestDetail insertTaskBaseRequest = new InsertTaskRequestDetail();
insertTaskBaseRequest.priority = 1;
//设置插入主文件名称
insertTaskBaseRequest.mainFile = "3D.sldprt";
insertTaskBaseRequest.inputURL = httpFile;
InsertTaskResponse res = yunapiClient.InsertTask(insertTaskBaseRequest);

4.2 查询任务并下载轻量化数据

//查询任务处理状态,res为插入任务返回信息
QueryTaskDetailResponse info = yunapiClient.QueryTask(res.taskID);
while (info.getCode() == 1 && info.status < 2){//处理中状态
  info = yunapiClient.QueryTask(res.taskID);
  Thread.sleep(2*1000);
}
if(info.status == 2){//转换完成
   System.out.println("在线预览地址" + info.previewURL);
  //下载轻量化数据
  ResultStatus rs = yunapiClient.DownloadNdsFile(info.outputNdsFiles,saveFile);
  System.out.println("下载code:"+rs.getCode() + " msg:" + rs.getMsg());
}

4.3 预览轻量化模型

将字段 previewURL(通过base64编码)解密后,获得轻量化模型预览地址。也可在门户网站,将轻量化模型文件下载到本地磁盘。集成Viewer组件后,通过浏览器预览。

4.4 demo示例

package com.newdim.demo;
import com.newdim.sdk.YunapiClient;
import com.newdim.sdk.models.*;
import org.json.JSONObject;

public class demo {

    public static void main(String[] args)  {
       // String localFile = "F:\\temp\\3D.step";
        //本地插入文件名
        String localFile = "F:\\temp\\3Da2d.zip";
        //轻量化文件下载保存路径文件夹
        String saveFile = "F:\\temp\\download";
        //初始化celient partnerID, secretKey,apiServer
        String partnerID = "xx";企业ID
        String secretKey = "xx";密钥
        String apiServer = "https://api.3dopen.cn";接口地址
        YunapiClient yunapiClient = new YunapiClient(partnerID,secretKey,apiServer);
      
        {   
          //单个插入任务
            InsertTaskBaseRequest insertTaskBaseRequest = new InsertConvertFormatTaskRequest();
            insertTaskBaseRequest.priority = 1;
            //设置插入主文件名称
            insertTaskBaseRequest.mainFile = "3D.sldprt";
            //插入任务
            InsertTaskResponse res = yunapiClient.InsertTaskLocalFile(localFile,insertTaskBaseRequest);
            System.out.println(res.taskID);
            if(res.taskID > 0){
                try {
                    //取消任务
                   // yunapiClient.RemoveTask(res.taskID+"");
                    //查询任务
                    BaseTaskResponse info = yunapiClient.QueryTask(res.taskID);
                    while (info.getCode() == 1 && info.status < 2){
                        info = yunapiClient.QueryTask(res.taskID);
                        Thread.sleep(2*1000);
                    }
                    if(info.status == 2){
                        System.out.println("在线预览地址" + info.previewURL);
                        //下载轻量化数据
                        ResultStatus rs = yunapiClient.DownloadNdsFile(info.outputNdsFiles,saveFile);
                        System.out.println("下载code:"+rs.getCode() + " msg:" + rs.getMsg());
                    }
                }catch (Exception e) {
                    System.out.println("error:"+e.getMessage());
                }
            }
        }
}