package com.zhentao.controller; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import org.springframework.util.DigestUtils; import java.util.Map; import java.util.TreeMap; public class Diff { private static final String APP_ID = "test_app"; private static final String APP_SECRET = "12"; private static final String API_URL = "http://localhost:8080/api/hello"; public static void main(String[] args) { Long goodsId = 123L; String reqId = "req_123"; Long reqTime = System.currentTimeMillis(); Map params = new TreeMap<>(); // TreeMap自动按key排序 params.put("goodsId", goodsId.toString()); params.put("reqId", reqId); params.put("reqTime", reqTime.toString()); params.put("appId", APP_ID); StringBuilder sb = new StringBuilder(); for (Map.Entry entry:params.entrySet()) { sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&"); } sb.append(APP_SECRET); String sign = DigestUtils.md5DigestAsHex(sb.toString().getBytes()); HttpResponse response = HttpRequest.get(API_URL + "?goodsId=" + goodsId) .header("reqId", reqId) .header("reqTime", reqTime.toString()) .header("appId", APP_ID) .header("sign", sign) .execute(); JSONObject json = JSONUtil.parseObj(response.body()); String status = json.getStr("status"); if ("200".equals(status)) { System.out.println("响应结果: " + json); System.out.println("商品名称: " + json.getStr("data")); }else { System.err.println("响应结果: " + json); System.err.println("请求失败,状态码: " + status); } } }