随着全球经济形势的变化,贵金属如黄金、白银等一直是投资者关注的重点。为了及时掌握贵金属的市场动态,许多专业的投资者和交易平台都依赖于实时的市场数据。传统的手动查询方式往往无法满足快速决策的需求,因此,越来越多的人开始转向通过API接口来获取实时贵金属价格。
API(应用程序编程接口)为用户提供了一种自动化获取数据的方式,能够高效地查询贵金属的实时价格数据,并在多个系统中进行应用。本文将介绍如何通过API接口查询贵金属的实时价格,并探讨如何将这些数据整合到自己的交易系统或分析工具中,以支持投资决策和策略制定。
账号注册:https://alltick.io/
Github: https://github.com/alltick/
通过接口查询现货白银XAGUSD的实时价格:
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; // 接口注册地址:https://alltick.io public class HttpJavaExample { public static void main(String[] args) { try { // 修改后的URL,查询现货白银(XAGUSD)实时数据 String url = "http://quote.aatest.online/quote-metal-api/price?token=e945d7d9-9e6e-4721-922a-7251a9d311d0-1678159756806&query=%7B%22trace%22%20%3A%20%22java_http_test1%22%2C%22data%22%20%3A%20%7B%22symbol%22%20%3A%20%22XAGUSD%22%7D%7D"; // 创建URL对象 URL obj = new URL(url); // 打开连接 HttpURLConnection con = (HttpURLConnection) obj.openConnection(); // 设置请求方法 con.setRequestMethod("GET"); // 获取响应码 int responseCode = con.getResponseCode(); System.out.println("Response Code: " + responseCode); // 读取响应内容 BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); // 输出返回的数据 System.out.println(response.toString()); } catch (Exception e) { e.printStackTrace(); } } }
import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.net.URI; import java.net.URISyntaxException; import javax.websocket.*; // 接口注册地址:https://alltick.io @ClientEndpoint public class WebSocketJavaExample { private Session session; @OnOpen public void onOpen(Session session) { System.out.println("Connected to server"); this.session = session; } @OnMessage public void onMessage(String message) { System.out.println("Received message: " + message); } @OnClose public void onClose(Session session, CloseReason closeReason) { System.out.println("Disconnected from server"); } @OnError public void onError(Throwable throwable) { System.err.println("Error: " + throwable.getMessage()); } public void sendMessage(String message) throws Exception { this.session.getBasicRemote().sendText(message); } public static void main(String[] args) throws Exception, URISyntaxException, DeploymentException, IOException, IllegalArgumentException, SecurityException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { // WebSocket服务器的URI,替换为您实际使用的WebSocket端点URL WebSocketContainer container = ContainerProvider.getWebSocketContainer(); URI uri = new URI("wss://quote.aatest.online/quote-metal-ws-api?token=e945d7d9-9e6e-4721-922a-7251a9d311d0-1678159756806"); // 假设这个URL支持贵金属查询 WebSocketJavaExample client = new WebSocketJavaExample(); container.connectToServer(client, uri); // 发送查询现货白银XAGUSD的消息 String requestMessage = "{" + "\"cmd_id\": 22002, " + "\"seq_id\": 123, " + "\"trace\": \"3baaa938-f92c-4a74-a228-fd49d5e2f8bc-1678419657806\", " + "\"data\": {" + "\"symbol_list\": [" + "{" + "\"code\": \"XAGUSD\", " + "\"depth_level\": 5" + "}" + "]" + "}" + "}"; client.sendMessage(requestMessage); // 等待直到用户输入以关闭程序 System.in.read(); } }