privateCall(apiSecret, apiKey, path, data = null, get = true) {
const timestamp = Date.now();
const recvWindow = 60000; //máximo permitido, default 5000
var obj = {
apiSecret,
...data,
timestamp,
recvWindow
};
var hash = CryptoJS.SHA256(obj);
var signature = hash.toString();
const newData = {...data, recvWindow, timestamp, signature };
let qs = `?${this.objectToQueryString(newData)}`;
const headers = new HttpHeaders();
headers.set("X-MBX-APIKEY", apiKey);
if (get) {
return this.http.get<any>(`${this.binanceUrl}${path}${qs}`, { headers: headers } );
} else {
return this.http.post(`${this.binanceUrl}${path}${qs}`, data, { headers: headers });
}
}
private objectToQueryString(obj) {
var str = [];
for(var p in obj) {
if (obj.hasOwnProperty(p)) {
str.push(encodeURIComponent(p) "=" encodeURIComponent(obj[p]));
}
}
return str.join("&");
}
錯誤:代碼=-2014;API-Key 格式無效
我試圖訪問的 URL 是“/v3/account”。
我已經測驗了我的 ApiKey 和 SecretKey。我在 binance 測驗 api 中生成了新密鑰,但它仍然無法正常作業。這可能是我傳遞“標題”的方式嗎?
編輯 1:
URL 字串 qs = "?recvWindow=60000×tamp=1640963456770&signature=4ea5c508a6566e76240543f8feb06fd457777be39549c4016436afda65d2330e"
uj5u.com熱心網友回復:
問題似乎出在您設定 X-MBX-APIKEY 標頭的方式上。
Angular 的 HttpHeaders 是不可變的。所以,當你做
const headers = new HttpHeaders();
headers.set("X-MBX-APIKEY", apiKey);
您正在創建一個空的 HttpHeaders 物件,創建一個具有所需標頭值的克隆,將其丟棄,然后發送空版本。
您可以使用帶值的 HttpHeaders 建構式,也可以安排使用 HttpHeaders.set() 回傳的克隆/更新版本,例如
const headers = new HttpHeaders().set("X-MBX-APIKEY", apiKey);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/400177.html
標籤:有角的 angularjs 离子框架 币安 币安-api-客户端
