1 restTemplate
public static final String BASIC_DATA_URL = "https://ft.10jqka.com.cn/api/v1/basic_data_service";
public static String ACCESS_TOKEN;
private static final RestTemplate restTemplate = new RestTemplate();
// 类初始化ACCESS_TOKEN
static {
ACCESS_TOKEN = getAccessToken();
}
public static String getAccessToken() {
// 创建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("refresh_token", REFRESH_TOKEN);
// 构造请求体
HttpEntity request = new HttpEntity<>(headers);
// 执行POST请求并获取结果
JSONObject responseResult = restTemplate.postForObject(ACCESS_TOKEN_URL, request, JSONObject.class);
String accessToken = responseResult.getJSONObject("data").getString("access_token");
String expiredTime = responseResult.getJSONObject("data").getString("expired_time");
return accessToken;
}
//调用接口
public static String getHistoryQuotation(String code,String startDate, String endDate) {
// 创建请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("access_token", ACCESS_TOKEN);
HashMap<String, String> params = new HashMap<>();
//params.put("codes", "688562.SH");
params.put("codes", code);
params.put("indicators", "open,close,low,high,preClose,avgPrice");
params.put("startdate", startDate);
params.put("enddate", endDate);
// 构造请求体
HttpEntity request = new HttpEntity<>(params, headers);
// 执行POST请求并获取结果
String responseResult = restTemplate.postForObject(HISTORY_QUOTES_URL, request, String.class);
return responseResult;
}
2 okhttp3方式
引入依赖
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.0</version>
</dependency>
方法访问
public static void main(String[] args) throws IOException {
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"source\":\"Ths_iwencai_Xuangu\",\"version\":\"2.0\",\"query_area\":\"\",\"block_list\":\"\",\"add_info\":\"{\\\"urp\\\":{\\\"scene\\\":1,\\\"company\\\":1,\\\"business\\\":1},\\\"contentType\\\":\\\"json\\\",\\\"searchInfo\\\":true}\",\"question\":\"今日涨幅\",\"perpage\":50,\"page\":1,\"secondary_intent\":\"\",\"log_info\":\"{\\\"input_type\\\":\\\"click\\\"}\",\"rsh\":\"Ths_iwencai_Xuangu_9afeli08e1ldvu09ocpyehb61efsadhq\"}");
Request request = new Request.Builder()
.url("https://www.iwencai.com/customized/chart/get-robot-data")
.post(body)
.addHeader("Accept", "application/json, text/plain, */*")
.addHeader("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7")
.addHeader("Cache-Control", "no-cache")
.addHeader("Connection", "keep-alive")
.addHeader("Content-Type", "application/json")
.addHeader("Origin", "https://www.iwencai.com")
.addHeader("Pragma", "no-cache")
.addHeader("Referer", "https://www.iwencai.com")
.addHeader("Sec-Fetch-Dest", "empty")
.addHeader("Sec-Fetch-Mode", "cors")
.addHeader("Sec-Fetch-Site", "same-origin")
.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0")
.addHeader("hexin-v", "A0yBx3smR4_40lNzP92pUiMFHaF7hfAv8ikE86YNWPeaMeKfzpXAv0I51IT1")
.addHeader("sec-ch-ua-mobile", "?0")
//.addHeader("Cookie", "other_uid=Ths_iwencai_Xuangu_9afeli08e1ldvu09ocpyehb61efsadhq; ta_random_userid=j45nhnswj7; cid=eb239ea23a77a1b75b48de2f0d4955bd1729128712; v=A6lkWCZ16sgt0dZ80m40dVbmuF4Gdp2oB2rBPEueJRDPEseAk8ateJe60QbY")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();
//System.out.println(response.body().string());
String aaa = response.body().string();
System.out.println(aaa);
JSONObject aa = JSONObject.parseObject(aaa);
System.out.println(aa);
System.out.println(aa.get("data"));
}