幣安API (Binance API) 是全球最大的加密貨幣交易所之一——幣安(Binance)提供的開放平台接口,允許開發者通過Java程式語言訪問和下載交易數據。本文將介紹如何使用幣安API在Java中進行交易信息抓取、行情查詢和客戶端設定等操作。
首先,為了使用幣安API,您需要先在幣安官網註冊賬戶並創建一個API密鑰。登入您的幣安賬戶後,訪問“API及DEALER”頁面,這裡您可以設置一個新的API密鑰或者複製已有密鑰。請記住,為了保護用戶資產安全,請不要將密鑰泄露給他人。
接下來,在您的Java項目中加入必要的依賴項。在Maven的POM.XML中,您需要添加以下依赖:
```xml
```
這將幫助您的Java應用解析幣安返回的JSON格式數據。
以下是一個使用Java和幣安API訪問現貨市場行情信息的範例:
```java
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class BinanceAPI {
private static final String API_KEY = "YOUR_API_KEY"; // 將“YOUR_API_KEY”替換為您從幣安得到的API密鑰。
private static final String API_URL = "https://api.binance.com/api/";
public static void main(String[] args) throws Exception {
String apiUrl = API_URL + "/spot/v1/ticker/price?symbol=BTCUSDT";
URL url = new URL(apiUrl);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestProperty("X-MB-APIKEY", API_KEY);
conn.setDoInput(true);
int responseCode = conn.getResponseCode();
System.out.println("Response Code: " + responseCode);
BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
String output;
JsonElement parsedData = JsonParser.parseReader(br);
System.out.println(parsedData);
}
}
```
這段代碼創建了一個URL對象,然後通過`HttpURLConnection`與幣安API建立連接。請將`YOUR_API_KEY`替換為您的密鑰,並根據需要修改API參數來訪問不同的市場行情信息。
要執行實際的交易,您可以使用以下代碼範例:
```java
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class BinanceTrade {
private static final String API_KEY = "YOUR_API_KEY"; // 將“YOUR_API_KEY”替換為您從幣安得到的API密鑰。
private static final String API_URL = "https://api.binance.com/api/";
public static void main(String[] args) throws Exception {
// 這裡我們以賣出10個BTC並購買等值USDT為例:
double amountToSell = 10.0; // 交易量,單位是BTC。
String apiUrl = API_URL + "/fapi/v1/place-order?symbol=BTCUSDT&side=SELL&type=LIMIT&newOrderRespType=RESULT'";
JsonObject jsonBody = new JsonObject();
jsonBody.addProperty("quantity", amountToSell);
jsonBody.addProperty("price", "10000.00000"); // 設定價格。
URL url = new URL(apiUrl);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestProperty("X-MB-APIKEY", API_KEY);
conn.setDoInput(true);
String payload = jsonBody.toString();
byte b[] = payload.getBytes();
conn.setRequestProperty("Content-Length", Integer.toString(b.length));
try (BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
}
}
```
這個代碼範例展示了如何使用POST請求在幣安API上執行一個限價賣出交易。同樣,您需要將`YOUR_API_KEY`替換為您的密鑰,並根據您的交易需求調整參數和設置價格。
通過上述範例,開發者可以輕鬆地使用Java進行與幣安API的互動。幣安提供的API接口覆蓋了幾乎所有交易所的功能,包括但不限於行情查詢、交易執行、錢包管理等。隨著加密貨幣市場的不斷擴展和發展,幣安API將繼續為開發者和用戶提供更多的便利。