restTemplate请求第三方接口

/**
 * 封装的get请求,暂时只支持map传参,并且value只支持基本类型和String
 *
 * @param url
 * @param object
 * @return
 */
public static String getForObject(String url, Object object) {
    StringBuffer stringBuffer = new StringBuffer(url);
    if (object instanceof Map) {
        Iterator iterator = ((Map) object).entrySet().iterator();
        if (iterator.hasNext()) {
            stringBuffer.append("?");
            Object element;
            while (iterator.hasNext()) {
                element = iterator.next();
                Map.Entry<String, Object> entry = (Map.Entry) element;
                //过滤value为null,value为null时进行拼接字符串会变成 "null"字符串
                if (entry.getValue() != null) {
                    stringBuffer.append(element).append("&");
                }
                url = stringBuffer.substring(0, stringBuffer.length() - 1);
            }
        }
    } else {
        throw new RuntimeException("url请求:" + url + "请求参数有误不是map类型");
    }
    log.info("url请求:" + url);
    return new RestTemplate().getForObject(url, String.class);
}

get请求示例:

HashMap<String, Object> stringObjectHashMap = new HashMap<>();
stringObjectHashMap.put("token", token);
stringObjectHashMap.put("url", url);

try {
    log.info("解析url的正文url{}", url);
    String forObject = RestTemplateUtil.getForObject(tokenUrl, stringObjectHashMap);
    log.info("通过url查询内容数据{}", forObject);

    JSONObject jsonObject = JSON.parseObject(forObject);
    Integer retcode = (Integer) jsonObject.get("retcode");

    if (retcode == 1) {
        //解析url的获取的正文数据
        JSONArray data = jsonObject.getJSONArray("data");
        List<AnalysisContentVo> list = data.toJavaList(AnalysisContentVo.class);
} catch (Exception e) {
    log.error("解析正文失败{}", e);
}

post请求示例:

Map<String, String> map= new HashMap<String, String>();
map.put("text1","张三、李四、王五、房间爱睡懒觉可代发哦哦");
map.put("text2","张三、checked李1四、王五123、房间爱睡懒觉可代发哦哦1");

HttpHeaders headers = new HttpHeaders();
headers.set("Content-Type","application/json");
HttpEntity<Map<String, String>> request = new HttpEntity<>(map, headers);


String url1 = "http://ml.intm.com:8087/api/similarity/v1/";
String stringResponseEntity = restTemplate.postForObject(url1, request, String.class);
log.info("返回参数:{}", stringResponseEntity );
JSONObject jsonObject = JSON.parseObject(jsonStr);
String content = jsonObject.getString("content");
String summaryInfo = jsonObject.getString("summary_info");

List<ScreenHotNewsContentBO> contentBOList = JSON.parseArray(content, ScreenHotNewsContentBO.class);
ScreenHotNewsPageResultBO pageResultBO = JSON.parseObject(summaryInfo, ScreenHotNewsPageResultBO.class);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值