DBHttpTemplate.java 4.61 KB
package com.lhcredit.common.utils.http;

import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import com.lhcredit.project.business.TianYC.entity.param.RequestParams;
import com.lhcredit.project.business.TianYC.entity.param.SFParams;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

@Component
@Slf4j
@RequiredArgsConstructor
public class DBHttpTemplate {

    @Value("${DB.key}")
    private String key;

    // 令牌信息
    @Value("${DB.token}")
    private String token;

//    private final RestTemplate restTemplate;

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    public String httpGetWithHeaders(String url) {
        log.info("===============请求地址信息:{}", url);
//        HttpHeaders headers = new HttpHeaders();
//        headers.set("token", token);
//        HttpEntity<?> requestEntity = new HttpEntity<>(headers);
//        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class);
//        return response.getBody();
        return HttpRequest.get(url).header("token", token).execute().body();
    }

//    public String httpPost(String url, String name) {
//        HttpHeaders headers = new HttpHeaders();
//        headers.set("token", token);
//        return restTemplate.postForEntity(url, name, String.class).getBody();
//    }

    public JSONObject getResult(String url) {
        try {
            String string = httpGetWithHeaders(url);
            return JSONObject.parseObject(string);
        } catch (Exception e) {
            log.error("============调用接口失败{}", e.getMessage(), e);
            return getErr("调用接口失败", "5000");
        }
    }

    public JSONObject getPost(String url,JSONObject j){
        j.put("key",key);
        String result = HttpRequest.post(url)
                .header("Token", token)
                .header(Header.CONTENT_TYPE,"application/json")
                .body(j.toString())
                .timeout(20000)//超时,毫秒
                .execute().body();
        return JSONObject.parseObject(result);
    }


    // 返回异常信息
    public JSONObject getErr(String msg, String code) {
        JSONObject result = new JSONObject();
        result.put("msg", msg);
        result.put("code", code);
        return result;
    }

    // 组装url参数信息
    public String getTycUrl(String url, RequestParams requestParams) {
        url = getString(url, requestParams.getCreditCode(), requestParams.getPageNum(), requestParams.getPageSize());
        return url;
    }

    // 组装url参数信息
    public String getNameTycUrl(String url, RequestParams requestParams) {
        url = getNameString(url, requestParams.getName(), requestParams.getPageNum(), requestParams.getPageSize());
        return url;
    }

    // 组装url参数信息
    public String getSFUrl(String url, SFParams sfParams) {
        url = getString(url, sfParams.getCreditCode(), sfParams.getPageNum(), sfParams.getPageSize());
        System.out.println(url);
        return url;
    }

    private String getString(String url, String name, Integer pageNum, Integer pageSize) {
//        url = url + "?key=" + key;
        if (StringUtils.isNotBlank(name)) {
            url = url + "?creditCode=" + name;
        }
        if (ObjectUtil.isNotNull(pageNum) && ObjectUtil.isNotNull(pageSize)) {
            url = url + "&pageNum=" + pageNum + "&pageSize=" + pageSize;
        }
        return url;
    }

    private String getNameString(String url, String name, Integer pageNum, Integer pageSize) {
//        url = url + "?key=" + key;
        if (StringUtils.isNotBlank(name)) {
            url = url + "?name=" + name;
        }
        if (ObjectUtil.isNotNull(pageNum) && ObjectUtil.isNotNull(pageSize)) {
            url = url + "&pageNum=" + pageNum + "&pageSize=" + pageSize;
        }
        return url;
    }

    public static void main(String[] args) {
        System.out.println(HttpUtils.urlDecode("http://api.lhdna.com/api/lhdb/reportDetails/xygj?name=%E4%BC%81%E4%B8%9A%E5%90%8D%E7%A7%B0"));
    }
}