记得上下班打卡 | git大法好,push需谨慎

Commit 3fb04d37 authored by anjiabin's avatar anjiabin

调试至信链NFt发行接口

parent 583aabbf
...@@ -7,8 +7,10 @@ import org.springframework.http.*; ...@@ -7,8 +7,10 @@ import org.springframework.http.*;
import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap; import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -43,6 +45,18 @@ public class HttpUtil { ...@@ -43,6 +45,18 @@ public class HttpUtil {
return request(url, params, headers, HttpMethod.GET); return request(url, params, headers, HttpMethod.GET);
} }
/**
* get请求 通过uri 解决再次编码问题
* @param url
* @param headers
* @return
*/
public static String getByUri(String url, MultiValueMap<String, String> headers) {
UriComponentsBuilder uriComponentsBuilder = UriComponentsBuilder.fromHttpUrl(url);
URI uri = uriComponentsBuilder.build(true).toUri();
return request(uri,headers, HttpMethod.GET);
}
/** /**
* post请求 * post请求
* *
...@@ -240,6 +254,31 @@ public class HttpUtil { ...@@ -240,6 +254,31 @@ public class HttpUtil {
return request(url, params, headers, method, MediaType.APPLICATION_FORM_URLENCODED); return request(url, params, headers, method, MediaType.APPLICATION_FORM_URLENCODED);
} }
/**
* http请求 通过uri
* @param url
* @param headers
* @param method
* @return
*/
public static String request(URI url,MultiValueMap<String, String> headers, HttpMethod method) {
if (url == null) {
return null;
}
// header
HttpHeaders httpHeaders = new HttpHeaders();
if (headers != null) {
httpHeaders.addAll(headers);
}
HttpEntity<Object> httpEntity = new HttpEntity(httpHeaders);
// RestTemplate restTemplate = new RestTemplate();
// 提交方式:表单、json
ResponseEntity<String> response = restTemplate.exchange(url, method, httpEntity, String.class);
return response.getBody();
}
/** /**
* 表单请求Raw * 表单请求Raw
* *
......
...@@ -9,15 +9,19 @@ import com.liquidnet.commons.lang.util.BeanUtil; ...@@ -9,15 +9,19 @@ import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.http.NameValuePair; import org.apache.http.NameValuePair;
import org.apache.http.client.utils.URIBuilder;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap; import org.springframework.util.MultiValueMap;
import java.beans.IntrospectionException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author AnJiabin <anjiabin@zhengzai.tv> * @author AnJiabin <anjiabin@zhengzai.tv>
...@@ -132,32 +136,57 @@ public class ZxlnftBiz { ...@@ -132,32 +136,57 @@ public class ZxlnftBiz {
* @return * @return
*/ */
public <T> String buildGetRequestUrl(String requestUrl,Class<T> tClass,Object obj){ public <T> String buildGetRequestUrl(String requestUrl,Class<T> tClass,Object obj){
// List<NameValuePair> params = new ArrayList<NameValuePair>(); //拼接请求url
// if(StringUtil.isNotEmpty(req.getSeriesName())){ URI build = null;
// params.add(new BasicNameValuePair("seriesName", req.getSeriesName())); // String reqUrl = null;
// try {
// UriComponentsBuilder builder = UriComponentsBuilder
// .fromHttpUrl(requestUrl).queryParams(this.buildGetReqParams(obj));
// reqUrl = builder.build(true).toString();
// } // }
// params.add(new BasicNameValuePair("platformIdentification", req.getPlatformIdentification())); // catch (Exception e) {
// if(StringUtil.isNotEmpty(req.getUserIdentification())){ // e.printStackTrace();
// params.add(new BasicNameValuePair("userIdentification", req.getUserIdentification()));
// } // }
// T reqObj = null; List<NameValuePair> params = BeanUtil.convertBeanToNameValuePairList(obj);
requestUrl = requestUrl.concat("?");
for(NameValuePair nameValuePair:params){
try {
requestUrl = requestUrl.concat("&"+nameValuePair.getName()+"="+ URLEncoder.encode(nameValuePair.getValue().toString(), "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
// try { // try {
// reqObj = tClass.newInstance(); // build = new URIBuilder(requestUrl).addParameters(params).build();
// } catch (InstantiationException e) { // } catch (URISyntaxException e) {
// e.printStackTrace();
// } catch (IllegalAccessException e) {
// e.printStackTrace(); // e.printStackTrace();
// } // }
List<NameValuePair> params = BeanUtil.convertBeanToNameValuePairList(obj);
//拼接请求url // if(build.toString().contains("%20")){
URI build = null; // return build.toString().replaceAll("%20","+");
// }
return requestUrl;
}
public MultiValueMap<String, String> buildGetReqParams(Object obj){
Map<String,Object> map = null;
try { try {
build = new URIBuilder(requestUrl).addParameters(params).build(); map = BeanUtil.convertBeanToMap(obj,false);
} catch (URISyntaxException e) { } catch (IntrospectionException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace(); e.printStackTrace();
} }
return build.toString();
MultiValueMap<String, String> params = new LinkedMultiValueMap();
// Map集合循环遍历方式三 推荐,尤其是容量大时
for (Map.Entry<String, Object> m : map.entrySet()) {
params.add(m.getKey(),m.getValue().toString());
}
return params;
} }
} }
...@@ -2,6 +2,15 @@ package com.liquidnet.common.third.zxlnft.service; ...@@ -2,6 +2,15 @@ package com.liquidnet.common.third.zxlnft.service;
import com.liquidnet.common.third.zxlnft.dto.wallet.*; import com.liquidnet.common.third.zxlnft.dto.wallet.*;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: WalletSdkService
* @Package com.liquidnet.common.third.zxlnft.service
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2022/2/17 15:53
*/
public interface WalletSdkService { public interface WalletSdkService {
/** /**
* 1.生成助记词 * 1.生成助记词
......
...@@ -836,11 +836,9 @@ public class ZxlnftSdkServiceImpl implements ZxlnftSdkService ...@@ -836,11 +836,9 @@ public class ZxlnftSdkServiceImpl implements ZxlnftSdkService
requestUrl = zxlnftBiz.buildGetRequestUrl(requestUrl,Nft024PointApplyResultReq.class,req); requestUrl = zxlnftBiz.buildGetRequestUrl(requestUrl,Nft024PointApplyResultReq.class,req);
log.info("nft024PointApplyResult--->>> new request url : {} ",requestUrl); log.info("nft024PointApplyResult--->>> new request url : {} ",requestUrl);
String response = null; String response = null;
// ObjectNode objectNode = JsonUtils.OM().createObjectNode();
try { try {
response = HttpUtil.get(requestUrl,null,commonHeader); response = HttpUtil.getByUri(requestUrl,commonHeader);
} catch(HttpClientErrorException e) { } catch(HttpClientErrorException e) {
log.error("nft024PointApplyResult error", e); log.error("nft024PointApplyResult error", e);
}catch (Exception e) { }catch (Exception e) {
......
...@@ -307,7 +307,10 @@ public class TestZxlnftSdkUtil { ...@@ -307,7 +307,10 @@ public class TestZxlnftSdkUtil {
ZxlnftResponseDto<Nft029PointQueryRespDto> resp = zxlnftSdkUtil.nft029PointQuery(reqDto); ZxlnftResponseDto<Nft029PointQueryRespDto> resp = zxlnftSdkUtil.nft029PointQuery(reqDto);
System.out.println(resp.toJson()); System.out.println(resp.toJson());
} }
//30 NFT 系列声明 api/v1/nft/series/claim
//31 查询NFT系列声明结果 api/v1/nft/series/claim/result
//32 查询系列信息 api/v1/nft/series
//33 查询该账户资产归属的系列列表 api/v1/nft/series/list
@Test @Test
public void nft034Publish(){ public void nft034Publish(){
Nft034PublishReqDto reqDto = Nft034PublishReqDto.getNew(); Nft034PublishReqDto reqDto = Nft034PublishReqDto.getNew();
...@@ -328,4 +331,12 @@ public class TestZxlnftSdkUtil { ...@@ -328,4 +331,12 @@ public class TestZxlnftSdkUtil {
ZxlnftResponseDto<Nft034PublishRespDto> resp = zxlnftSdkUtil.nft034Publish(reqDto); ZxlnftResponseDto<Nft034PublishRespDto> resp = zxlnftSdkUtil.nft034Publish(reqDto);
System.out.println(resp.toJson()); System.out.println(resp.toJson());
} }
@Test
public void nft035PublishResult(){
Nft035PublishResultReqDto reqDto = Nft035PublishResultReqDto.getNew();
reqDto.setTaskId("5d23ed47-dcb2-4672-99eb-060c04727a20_nft-publish_3");
ZxlnftResponseDto<Nft035PublishResultRespDto> resp = zxlnftSdkUtil.nft035PublishResult(reqDto);
System.out.println(resp.toJson());
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment