概述
由于业务api和用户api中都有许多api,因此本文档介绍了如何使用这些api来:
• 获取访问权限
• 获取新vid
• 创建账号
• 给新用户发行新的NFT
• 将NFT转移给新用户
• 批准第三方转移NFT
• 被授权的第三方转移NFT
• 批准第三方转移所有NFT
• 申请NFT转让
Java ToolChainClient
如果客户端使用Java,VeChain将提供ToolChainClient来帮助客户端更轻松地开发服务器端应用程序。 在这里,请单击此处下载ToolChainClient。
<!-- https://mvnrepository.com/artifact/com.vechain/toolchainclient -->
<dependency>
<groupId>com.vechain</groupId> <artifactId>toolchainclient</artifactId> <version>0.1.1</version>
</dependency>
示例代码中的示例仅供参考,客户端需要使用自己的vid,uid,合约UID等。
访问权限
在开始之前,开发人员需要登录toolchain。
- 从下面的部分找到appid和appkey。 在开发者中心中,您将找到appid(开发人员ID)和appkey(开发人员密钥)
- 找到合约UID,该UID将用于:
- 发行NFT
- 设置NFT名称
- 设置NFT符号
- 设置NFT基本网址
- 设置智能合约发行状态
执行顺序
执行顺序是描述如何使用NFT,并给出了ToolChainClient的示例代码。 客户可以遵循此顺序过程并成功使用NFT。
获取访问令牌
访问令牌用于ToolChain后端服务器对客户端进行身份验证。 因此,在调用ToolChain api之前,客户端必须调用“获取令牌” api来获取访问令牌。 使用ToolChainClient时,可以使用appid和appkey创建新的工具链客户端,这里的“aa”是源的示例,用于定义客户端身份。 对于每个客户端应用程序,ToolChain建议使用不同的源,这将更易于对访问令牌管理。
举例:
ToolChainClient toolChainClient = new ToolChainClient(appid,appkey,"aa");
设置/获取NFT名称
这是NFT的名称,例如“ VeChain Token”。 客户端可以使用合约UID设置此名称。
设置名称
举例:
SetVIP181NameRequest setVIP181NameRequest = new SetVIP181NameRequest();
setVIP181NameRequest.setName("VeChain");
setVIP181NameRequest.setOwnerUID("0x123456....789a");
//from developer’s owern UID
SetVIP181NameResponse setNameResponse = (SetVIP181NameResponse)toolChainClient.exec ute(setVIP181NameRequest);
while (true) {
if(setNameResponse.getData() != null ){
if(setNameResponse.getData().getOrderStatus().equals(OrderStatusEnum.SUCCES S.getStatus())){
logger.debug("set name success");
break;
} else if(setNameResponse.getData().getOrderStatus().equals(OrderStatusEnum. FAIL.getStatus())) {
logger.debug("set name fail");
break;
}
}
Thread.sleep(10000);
setNameResponse = (SetVIP181NameResponse)toolChainClient.execute(setVIP181NameR equest);
}
logger.debug("{}",setNameResponse);
获取名称
举例:
GetVIP181NameRequest getVIP181NameRequest = new GetVIP181NameRequest();
GetVIP181NameResponse getVIP181NameResponse = (GetVIP181NameResponse)toolChainClien t.execute(getVIP181NameRequest);
logger.debug("{}",getVIP181NameResponse.getData().getName());
设置/获取NFT符号
这是NFT的符号,例如”VET”,可以显示在钱包中。 客户端可以使用合约UID设置此符号。
设置符号
举例:
SetVIP181SymbolRequest setVIP181SymbolRequest = new SetVIP181SymbolRequest();
setVIP181SymbolRequest.setSymbol("GU");
setVIP181SymbolRequest.setOwnerUID("0x2c8ab1d8c61c44eacc69741936316675ec46a141798d2 d367c508219870e5134");
SetVIP181SymbolResponse setVIP181SymbolResponse = (SetVIP181SymbolResponse)toolChai nClient.execute(setVIP181SymbolRequest);
while (true) {
if(setVIP181SymbolResponse.getData() != null ){
if(setVIP181SymbolResponse.getData().getOrderStatus().equals(OrderStatusEnu m.SUCCESS.getStatus())){
logger.debug("set symbol success");
break;
} else if(setVIP181SymbolResponse.getData().getOrderStatus().equals(OrderSta tusEnum.FAIL.getStatus())) {
logger.debug("set symbol fail");
break;
}
}
Thread.sleep(10000);
setVIP181SymbolResponse = (SetVIP181SymbolResponse)toolChainClient.execute(setV IP181SymbolRequest);
}
logger.debug("{}",setVIP181SymbolResponse);
获取符号
举例:
GetVIP181SymbolRequest getVIP181SymbolRequest = new GetVIP181SymbolRequest();
GetVIP181SymbolResponse getVIP181SymbolResponse = (GetVIP181SymbolResponse)toolChainClient.execute(getVIP181SymbolRequest);
logger.debug("{}",getVIP181SymbolResponse.getData().getSymbol());
设置/获取NFT智能合约发行状态
NFT智能合约发行状态是此NFT智能合约是否可以发行NFT的开关。 客户端可以使用合约UID来设置发行状态。
设置NFT智能合约发行状态
举例:
SetVIP181MintableRequest setVIP181MintableRequest = new SetVIP181MintableRequest();
setVIP181MintableRequest.setMintable(true);
setVIP181MintableRequest.setOwnerUID("0x2c8ab1d8c61c44eacc69741936316675ec46a141798 d2d367c508219870e5134");
SetVIP181MintableResponse setVIP181MintableResponse = (SetVIP181MintableResponse)to olChainClient.execute(setVIP181MintableRequest);
while (true) {
if(setVIP181MintableResponse.getData() != null ){
if(setVIP181MintableResponse.getData().getOrderStatus().equals(OrderStatusE num.SUCCESS.getStatus())){
logger.debug("set mintable success");
break;
} else if(setVIP181MintableResponse.getData().getOrderStatus().equals(OrderS tatusEnum.FAIL.getStatus())) {
logger.debug("set mintable fail");
break;
}
}
Thread.sleep(10000);
setVIP181MintableResponse = (SetVIP181MintableResponse)toolChainClient.execute( setVIP181MintableRequest);
}
logger.debug("{}",setVIP181MintableResponse);
获取NFT智能合约发行状态
举例:
GetVIP181MintableRequest getVIP181MintableRequest = new GetVIP181MintableRequest();
GetVIP181MintableResponse getVIP181MintableResponse = (GetVIP181MintableResponse)to olChainClient.execute(getVIP181MintableRequest);
logger.debug("{}", getVIP181MintableResponse.getData().isMintable());
设置/获取NFT基本网址
NFT基本网址是dapp可以获取并重定向到的基础链接,在该网址中将显示NFT的登陆页面。 客户端可以使用合约UID设置此基本网址。 例如:http://vechain.com/0x2c8ab1d8c61c44eacc69741936316675ec46a141798d2d367c508219870e5134,http://vechain.com是基本网址。 0x2c8ab1d8c61c44eacc69741936316675ec46a141798d2d367c508219870e5134是vid,它也是NFT vid。
设置基本网址
举例:
SetVIP181BaseURLRequest setVIP181BaseURLRequest = new SetVIP181BaseURLRequest();
setVIP181BaseURLRequest.setBaseURI("http://gu.vechain.com");
setVIP181BaseURLRequest.setOwnerUID("0x2c8ab1d8c61c44eacc69741936316675ec46a141798d 2d367c508219870e5134");
SetVIP181BaseURLResponse setVIP181BaseURLResponse = (SetVIP181BaseURLResponse)toolC hainClient.execute(setVIP181BaseURLRequest);
while (true) {
if (setVIP181BaseURLResponse.getData() != null) {
if (setVIP181BaseURLResponse.getData().getOrderStatus().equals(OrderStatusE num.SUCCESS.getStatus())) {
logger.debug("set base url success");
break;
} else if (setVIP181BaseURLResponse.getData().getOrderStatus().equals(Order StatusEnum.FAIL.getStatus())) {
logger.debug("set base url fail");
break;
}
}
Thread.sleep(10000);
setVIP181BaseURLResponse = (SetVIP181BaseURLResponse) toolChainClient.execute(s etVIP181BaseURLRequest);
}
logger.debug("{}", setVIP181BaseURLResponse);
获取基本网址
举例:
GetVIP181BaseURLRequest getVIP181BaseURLRequest = new GetVIP181BaseURLRequest();
GetVIP181BaseURLResponse getVIP181BaseURLResponse = (GetVIP181BaseURLResponse)toolC hainClient.execute(getVIP181BaseURLRequest);
logger.debug("{}",getVIP181BaseURLResponse.getData().getMetadataBaseURI());
获取NFT网址
这是NFT的网址,该网址可用于定向到此NFT的登录页面。
举例:
GetVIP181TokenURLRequest getVIP181TokenURLRequest = new GetVIP181TokenURLRequest();
getVIP181TokenURLRequest.setVid("0XBB7D85AA4E53FF18907854BCE3E20FB47F049058AEE0604F EB683F1C6EC18DA0");
GetVIP181TokenURLResponse getVIP181TokenURLResponse = (GetVIP181TokenURLResponse)to olChainClient.execute(getVIP181TokenURLRequest);
logger.debug("{}", getVIP181TokenURLResponse.getData().getUri());
获取新的vid
在发行NFT之前,客户需要一个vid。 可以从api获取vid,客户端也可以使用其现有的vid。 如果使用现有的vid,请跳过这一部分。
举例:
ApplyForVidRequest applyForVidRequest = new ApplyForVidRequest();
applyForVidRequest.setQuantity(2);
ApplyForVidResponse applyForVidResponse = (ApplyForVidResponse)toolChainClient.exec ute(applyForVidRequest);
while (true) {
Thread.sleep(10000);
if(applyForVidResponse.getData() != null ){
if(applyForVidResponse.getData().getStatus().equals(TxStatusEnum.SUCCESS.ge tStatus())){
break;
}
}
applyForVidResponse = (ApplyForVidResponse)toolChainClient.execute(applyForVidR equest);
}
logger.debug("{}",applyForVidResponse);
创建账号
客户可以调用“创建帐户”来创建用户及其地址,然后ToolChain将返回uid和地址。
举例:
CreateUserRequest createUserRequest = new CreateUserRequest();
CreateUserResponse createUserResponse = (CreateUserResponse)toolChainClient.execute (createUserRequest);
while (true) {
Thread.sleep(10000);
if(createUserResponse.getData() != null ){
if(createUserResponse.getData().getOrderStatus().equals(StatusEnum.SUCCESS. getStatus())){
break;
}
}
createUserResponse = (CreateUserResponse)toolChainClient.execute(createUserRequest);
}
logger.debug("{}", createUserResponse);
对用户发行NFT
有2个发行NFT的API:
- 对UID发行
- 对地址发行
这2个API都支持批量铸币,用户可以在请求中放置多个vid拥有者,这将提高铸币的效率
对UID发行
举例:
List<String> vids = new ArrayList<String>();
vids.add("0X0F46D8D26497DE5E24CA2E20C056769573170B5CF84F7170A87F0982BA6D4C9D");
vids.add("0X6E0052F95820132D28415325D720C87D8331B20216E0A6D67D7ACFA6E37D91FF");
vids.add("0XFCCBDAEECFD06A330638B056B46E89E46B08CB37D658FDB5E3F60D9E31D00F35");
List<String> uids = new ArrayList<String>();
List<String> addresses = new ArrayList<String>();
uids.add("0x883affe30a72d4d525c0b4c8ffcbe0adb8eabb5d8b000d85fb460011a6644e08");
uids.add("0x4f42ddc2da081a9e6bad9588200e316f8341c2f09caf953872326923aaa5d4cd");
addresses.add("0x928d9e453296d9e449e359b182338448fa0718ea");
addresses.add("0x5ade8414f2a8835794bed572834185096dbfdb1f");
addresses.add("0x5fc828f2a29d75a30d8c97602381302689049811");
MintVIP181TokenToUIDRequest mintVIP181TokenToUIDRequest = new MintVIP181TokenToUIDR
equest();
mintVIP181TokenToUIDRequest.setOwnerUID("0x2c8ab1d8c61c44eacc69741936316675ec46a141798d2d367c508219870e5134");
mintVIP181TokenToUIDRequest.addToken(vids.get(0),uids.get(0));
mintVIP181TokenToUIDRequest.addToken(vids.get(1),uids.get(0));
mintVIP181TokenToUIDRequest.addToken(vids.get(2),uids.get(0));
MintVIP181TokenToUIDResponse mintVIP181TokenToUIDResponse = (MintVIP181TokenToUIDRe sponse)toolChainClient.execute(mintVIP181TokenToUIDRequest);
while (true) {
if(mintVIP181TokenToUIDResponse.getData() != null ){
if(mintVIP181TokenToUIDResponse.getData().getOrderStatus().equals(OrderStat usEnum.SUCCESS.getStatus())){
logger.debug("issue 1 token success");
break;
} else if(mintVIP181TokenToUIDResponse.getData().getOrderStatus().equals(Ord erStatusEnum.FAIL.getStatus())) {
logger.debug("issue 1 token fail");
break;
}
}
Thread.sleep(20000);
mintVIP181TokenToUIDResponse = (MintVIP181TokenToUIDResponse)toolChainClient.ex ecute(mintVIP181TokenToUIDRequest);
}
logger.debug("{}", mintVIP181TokenToUIDResponse);
对地址发行
举例:
List<String> vids = new ArrayList<String>();
vids.add("0X0F46D8D26497DE5E24CA2E20C056769573170B5CF84F7170A87F0982BA6D4C9D");
vids.add("0X6E0052F95820132D28415325D720C87D8331B20216E0A6D67D7ACFA6E37D91FF");
vids.add("0XFCCBDAEECFD06A330638B056B46E89E46B08CB37D658FDB5E3F60D9E31D00F35");
List<String> uids = new ArrayList<String>();
List<String> addresses = new ArrayList<String>();
uids.add("0x883affe30a72d4d525c0b4c8ffcbe0adb8eabb5d8b000d85fb460011a6644e08");
uids.add("0x4f42ddc2da081a9e6bad9588200e316f8341c2f09caf953872326923aaa5d4cd");
addresses.add("0x928d9e453296d9e449e359b182338448fa0718ea");
addresses.add("0x5ade8414f2a8835794bed572834185096dbfdb1f");
addresses.add("0x5fc828f2a29d75a30d8c97602381302689049811");
MintVIP181TokenToAddressRequest mintVIP181TokenToAddressRequest = new MintVIP181Tok
enToAddressRequest();
mintVIP181TokenToAddressRequest.setOwnerUID("0x2c8ab1d8c61c44eacc69741936316675ec46 a141798d2d367c508219870e5134");
mintVIP181TokenToAddressRequest.addToken(vids.get(0),addresses.get(1));
mintVIP181TokenToAddressRequest.addToken(vids.get(1),addresses.get(1));
mintVIP181TokenToAddressRequest.addToken(vids.get(2),addresses.get(1));
MintVIP181TokenToAddressResponse mintVIP181TokenToAddressResponse = (MintVIP181Toke nToAddressResponse)toolChainClient.execute(mintVIP181TokenToAddressRequest);
while (true) {
if(mintVIP181TokenToAddressResponse.getData() != null ){
if(mintVIP181TokenToAddressResponse.getData().getOrderStatus().equals(Order StatusEnum.SUCCESS.getStatus())){
logger.debug("issue 1 token success");
break;
} else if(mintVIP181TokenToAddressResponse.getData().getOrderStatus().equals (OrderStatusEnum.FAIL.getStatus())) {
logger.debug("issue 1 token fail");
break;
}
}
Thread.sleep(20000);
mintVIP181TokenToAddressResponse = (MintVIP181TokenToAddressResponse)toolChainC lient.execute(mintVIP181TokenToAddressRequest);
}
logger.debug("{}", mintVIP181TokenToAddressResponse);
将NFT转移给用户
有两种用于转移NFT的API:
- 将NFT转移到uid
- 将NFT转移到地址。
将NFT转移到uid
举例:
List<String> vids = new ArrayList<String>();
vids.add("0X0F46D8D26497DE5E24CA2E20C056769573170B5CF84F7170A87F0982BA6D4C9D");
vids.add("0X6E0052F95820132D28415325D720C87D8331B20216E0A6D67D7ACFA6E37D91FF");
vids.add("0XFCCBDAEECFD06A330638B056B46E89E46B08CB37D658FDB5E3F60D9E31D00F35");
List<String> uids = new ArrayList<String>();
List<String> addresses = new ArrayList<String>();
uids.add("0x883affe30a72d4d525c0b4c8ffcbe0adb8eabb5d8b000d85fb460011a6644e08");
uids.add("0x4f42ddc2da081a9e6bad9588200e316f8341c2f09caf953872326923aaa5d4cd");
addresses.add("0x928d9e453296d9e449e359b182338448fa0718ea");
addresses.add("0x5ade8414f2a8835794bed572834185096dbfdb1f");
addresses.add("0x5fc828f2a29d75a30d8c97602381302689049811");
TransferToUIDRequest transferToUIDRequest = new TransferToUIDRequest();
transferToUIDRequest.setCurrentOwnerUID(uids.get(0));
transferToUIDRequest.addTransfer(vids.get(0), uids.get(1));
TransferResponse transferResponse = (TransferResponse)toolChainClient.execute(trans ferToUIDRequest);
while (true) {
if(transferResponse.getData() != null ){
if(transferResponse.getData().getOrderStatus().equals(OrderStatusEnum.SUCCE SS.getStatus())){
logger.debug("transfer to uid token success");
break;
} else if(transferResponse.getData().getOrderStatus().equals(OrderStatusEnum .FAIL.getStatus())) {
logger.debug("transfer to uid token fail");
break;
}
}
Thread.sleep(20000);
transferResponse = (TransferResponse)toolChainClient.execute(transferToUIDReque
st);
}
将NFT转移到地址
举例:
List<String> vids = new ArrayList<String>();
vids.add("0X0F46D8D26497DE5E24CA2E20C056769573170B5CF84F7170A87F0982BA6D4C9D");
vids.add("0X6E0052F95820132D28415325D720C87D8331B20216E0A6D67D7ACFA6E37D91FF");
vids.add("0XFCCBDAEECFD06A330638B056B46E89E46B08CB37D658FDB5E3F60D9E31D00F35");
List<String> uids = new ArrayList<String>();
List<String> addresses = new ArrayList<String>();
uids.add("0x883affe30a72d4d525c0b4c8ffcbe0adb8eabb5d8b000d85fb460011a6644e08");
uids.add("0x4f42ddc2da081a9e6bad9588200e316f8341c2f09caf953872326923aaa5d4cd");
addresses.add("0x928d9e453296d9e449e359b182338448fa0718ea");
addresses.add("0x5ade8414f2a8835794bed572834185096dbfdb1f");
addresses.add("0x5fc828f2a29d75a30d8c97602381302689049811");
TransferToAddressRequest transferToAddressRequest = new TransferToAddressRequest();
transferToAddressRequest.setCurrentOwnerUID(uids.get(1));
transferToAddressRequest.addTransfer(vids.get(0),addresses.get(0));
transferResponse = (TransferResponse)toolChainClient.execute(transferToAddressReque st);
while (true) {
if(transferResponse.getData() != null ){
if(transferResponse.getData().getOrderStatus().equals(OrderStatusEnum.SUCCE SS.getStatus())){
logger.debug("transfer to address token success");
break;
} else if(transferResponse.getData().getOrderStatus().equals(OrderStatusEnum .FAIL.getStatus())) {
logger.debug("transfer to address token fail");
break;
}
}
Thread.sleep(10000);
transferResponse = (TransferResponse)toolChainClient.execute(transferToAddressR equest);
}
获取NFT的拥有者
客户可以使用ownerOf请求获取NFT的拥有者。
举例:
OwnerOfRequest ownerOfRequest = new OwnerOfRequest();
ownerOfRequest.setVid(vids.get(0));
ownerOfResponse = (OwnerOfResponse)toolChainClient.execute(ownerOfRequest);
批准
批准请求是批准第三方有权转让NFT。
批准
举例:
ApproveToUIDRequest approveRequest = new ApproveToUIDRequest();
approveRequest.setCurrentOwnerUID(uids.get(1));
approveRequest.addApprove(vids.get(1),uids.get(0));
ApproveResponse approveResponse = (ApproveResponse)toolChainClient.execute(approveR equest);
while (true) {
if(approveResponse.getData() != null ){
if(approveResponse.getData().getOrderStatus().equals(OrderStatusEnum.SUCCES S.getStatus())){
logger.debug("approve to uid success");
break;
} else if(approveResponse.getData().getOrderStatus().equals(OrderStatusEnum. FAIL.getStatus())) {
logger.debug("approve to uid fail");
break;
}
}
Thread.sleep(10000);
approveResponse = (ApproveResponse)toolChainClient.execute(approveRequest);
}
logger.debug("{}",approveResponse);
获取审批状态
举例:
GetApprovedRequest getApprovedRequest = new GetApprovedRequest();
getApprovedRequest.setVid(vids.get(1));
GetApprovedResponse getApprovedResponse = (GetApprovedResponse)toolChainClient.exec ute(getApprovedRequest);
logger.debug("{}",getApprovedResponse.getData().getDelegateUID());
logger.debug("{}",getApprovedResponse.getData().getDelegateAddress());
第三方转移
批准请求后,第三方可以调用transferFrom将NFT从所有者转移到另一个地址。
现在我们支持:
- 从uid到uid
- 从uid到地址
- 从地址到uid
- 从地址到地址
第三方将NFT从uid转移到uid
举例:
TransferFromUIDToUIDRequest transferFromUIDToUIDRequest = new TransferFromUIDToUIDR equest();
transferFromUIDToUIDRequest.setDelegateUID(uids.get(0));
transferFromUIDToUIDRequest.addTransferFrom(vids.get(1),uids.get(1),uids.get(0),nul l);
transferResponse = (TransferResponse)toolChainClient.execute(transferFromUIDToUIDRe quest);
while (true) {
if(transferResponse.getData() != null ){
if(transferResponse.getData().getOrderStatus().equals(OrderStatusEnum.SUCCE SS.getStatus())){
logger.debug("transfer from uid to uid token success");
break;
} else if(transferResponse.getData().getOrderStatus().equals(OrderStatusEnum .FAIL.getStatus())) {
logger.debug("transfer from uid to uid token fail");
break;
}
}
Thread.sleep(10000);
transferResponse = (TransferResponse)toolChainClient.execute(transferFromUIDToU IDRequest);
}
logger.debug("{}",transferResponse);
第三方将NFT从uid转移到地址
举例:
TransferFromUIDToAddressRequest transferFromUIDToAddressRequest = new TransferFromU IDToAddressRequest();
transferFromUIDToAddressRequest.setDelegateUID(uids.get(1));
transferFromUIDToAddressRequest.addTransferFrom(vids.get(1),uids.get(0),addresses.g et(1),null);
transferResponse = (TransferResponse)toolChainClient.execute(transferFromUIDToAddre ssRequest);
while (true) {
if(transferResponse.getData() != null ){
if(transferResponse.getData().getOrderStatus().equals(OrderStatusEnum.SUCCE SS.getStatus())){
logger.debug("transfer from uid to address token success");
break;
} else if(transferResponse.getData().getOrderStatus().equals(OrderStatusEnum .FAIL.getStatus())) {
logger.debug("transfer from uid to address token fail");
break;
}
}
Thread.sleep(10000);
transferResponse = (TransferResponse)toolChainClient.execute(transferFromUIDToA ddressRequest);
}
logger.debug("{}",transferResponse);
是否批准转移
IsApprovalForAll请求是为了获取是否第三方有权转移所有者的所有NFT。
举例:
IsApprovedForAllUIDByUIDRequest isApprovedForAllRequest = new IsApprovedForAllUIDBy UIDRequest();
isApprovedForAllRequest.setOwnerUID(uids.get(1));
isApprovedForAllRequest.setOperatorUID(uids.get(0));
IsApprovedForAllResponse isApprovedForAllResponse = (IsApprovedForAllResponse)toolC hainClient.execute(isApprovedForAllRequest);
logger.debug("{}",isApprovedForAllResponse.getData().isApproved());
申请
ApplyFor请求是请求转移NFT。 当该NFT的所有者看到此请求时,他可以选择进行转移。.
请求转移
举例:
ApplyForRequest applyForRequest = new ApplyForRequest();
applyForRequest.setApplicantUID(uids.get(0));
applyForRequest.setVid(vids.get(1));
ApplyForResponse applyForResponse = (ApplyForResponse)toolChainClient.execute(apply ForRequest);
while (true) {
if(applyForResponse.getData() != null ){
if(applyForResponse.getData().getOrderStatus().equals(OrderStatusEnum.SUCCE SS.getStatus())){
logger.debug("apply for token success");
break;
} else if(applyForResponse.getData().getOrderStatus().equals(OrderStatusEnum .FAIL.getStatus())) {
logger.debug("apply for token fail");
break;
}
}
Thread.sleep(10000);
applyForResponse = (ApplyForResponse)toolChainClient.execute(applyForRequest);
}
logger.debug("{}",applyForResponse);
获取请求
举例:
GetApplicationOfUIDRequest getApplicationOfUIDRequest = new GetApplicationOfUIDRequ est();
getApplicationOfUIDRequest.setApplicantUID(uids.get(0));
GetApplicationResponse getApplicationResponse = (GetApplicationResponse)toolChainCl ient.execute(getApplicationOfUIDRequest);
logger.debug("{}",getApplicationResponse.getData().getVid().toLowerCase());
评论
0 条评论
请登录写评论。