本文介绍了星空PLM电子仓的文档下载、获取文档hash值和长度的接口,包括请求地址、类型、头参数及其编码要求,以及返回参数格式。同时说明了获取电子仓访问凭证的方法,并提供了使用示例和注意事项,如错误处理、header参数设置和使用HTTP请求模拟工具的建议。
下载文档
接口简介
获取星空 PLM的电子仓(物理文档服务器)文档流,支持从指定文档位置下载指定长度的文档流
接口详情
请求地址
如 http://localhost/CloudPLMWarehouse/Download
请求类型
POST
请求头
参数 | 是否必须 | 编码 | 说明 |
FileID | Y | base64 | 下载的文档ID |
FileHash | N | base64 | 当前文档hash值,用来校验电子仓文档的hash值是否跟当前hash值一致,不一致返回错误信息。为空时不作校验 |
Offset | N | base64 | 偏移值,即文件中的位置,将从该位置开始将内容写入到 HTTP 输出中。为空时即从头开始。 |
TotalLength | N | base64 | 要传输的字节数,为空则默认为 文档总长度-偏移值 |
CTX | Y | base64 | FTP上下文,格式:LoginUrl=http://{星空站点URL}/&UserToken= |
token | Y | 电子仓的访问凭证,下面详细说明获取方法 | |
PLM_ACCESS_TYPE | N | 值为“pure”时获取不压缩的文档,否则默认获取压缩的文档的流 |
返回参数说明
正常:返回指定文档流
异常:返回错误信息,格式为 “[Base64]{base64编码的内容}[/Base64]”
获取文档hash值
接口简介
获取电子仓文档的hash值
接口详情
请求地址
http://{物理文档服务器地址}/ GetHash ,
如http://localhost/CloudPLMWarehouse/ GetHash
请求类型
POST
请求头(参数值统一使用base64编码)
参数 | 是否必须 | 编码 | 说明 |
FileID | Y | base64 | 请求下载的文档ID |
CTX | Y | base64 | FTP上下文,格式:LoginUrl=http://K3Cloud站点/&UserToken= |
token | Y | 电子仓的访问凭证 |
返回参数说明
正常:返回文档hash值,不支持hash的文档返回-1
异常:返回错误信息,格式为 “[Base64]{base64编码的内容}[/Base64]”
获取文档长度
接口简介
获取电子仓的文件长度
接口详情
请求地址
http://{物理文档服务器地址}/ GetLength ,
如http://localhost/CloudPLMWarehouse/ GetLength
请求类型
POST
请求头(参数值统一使用base64编码)
参数 | 是否必须 | 编码 | 说明 |
FileID | Y | base64 | 请求下载的文档ID |
CTX | Y | base64 | FTP上下文,格式:LoginUrl=http://K3Cloud站点/&UserToken= |
token | Y | 电子仓的访问凭证 |
返回参数说明
正常:返回文档hash值,不支持hash的文档返回-1
异常:返回错误信息,格式为 “[Base64]{base64编码的内容}[/Base64]”
获取电子仓访问凭证
说明
使用http访问plm电子仓时需要访问凭证token,该凭证可以通过服务端注册一个电子仓访问凭证而获取。
服务端获取方式
通过使用反射或引用dll调用以下方法获取,为了不依赖该dll,建议使用反射。
DLL:
Kingdee.K3.PLM.Common.Core.dll
类:
AccessorTokenCenter
方法:
GetRegisterToken
参数:
userId,用户ID
accessType,访问类型,暂时用不上,写死”1000”
DEMO(仅供参考)
请求前的参数准备
获取响应对象
响应结果处理
代码注意事项:
1、AcctID(数据库ID)、Username(用户名)、Password(密码)、https://172.19.71.71/k3cloud/Kingdee.BOS.ServiceFacade.ServicesStub.User.UserService.ValidateLoginInfo.common.kdsvc中的“172.17.71.71”需要替换成自己的站点IP。
2、如果发生报错,请捕获报错信息并检查其中详细信息,找到类似于“[Base64]MDAwIDEwMSBwYXJhbWV0ZXJzIGlzIG5vdCBhIGJhc2U2NHN0cmluZyE=[/Base64]”这种信息,转换一下就是报错的具体原因。
3、请在header中加上{"PLM_ACCESS_TYPE","pure"}参数,如果不加,获取的数据将是加密的。
4、如果会使用POSTMAN等HTTP请求模拟工具,更推荐使用POSTMAN获取API结果。
5、文章属于对于之前文章的整合,原贴:https://vip.kingdee.com/article/58226413765246720
推荐阅读