如何解决用于创建与 Binance 的 API 连接的 C# 代码
嗨,我是 C# 新手,但正在通过互联网上提供的解决方案找到自己的方法。我想创建一个 API 连接以将数据从 Binance 直接流式传输到 PowerBI。为此,我使用了 4 个类,但遇到了 2 个错误(错误下方显示了完整代码):
第 32 行
"LogWriters = new List{ Console.Out }"
错误:
“错误 CS0305 使用泛型类型 'List' 需要 1 个类型参数 CryptoTradesPowerBI”
和
第 76 行:
"返回响应;"
“Severity Code Description Project File Line Suppression State”
错误 CS1997 由于“TradeStream.PowerBIPostAsync(string,string)”是一种返回“Task”的异步方法,因此返回关键字后不能跟有对象表达式。您是否打算返回“任务”?
代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
using Binance.Net;
using Binance.Net.Objects.Spot;
using CryptoExchange.Net.Authentication;
using CryptoExchange.Net.Logging;
using Newtonsoft.Json;
namespace CryptoTradesPowerBI
{
class TradeStream
{
// Client required for posting to Power BI
static HttpClient httpClient = new HttpClient();
// Initiate stream
public static void InitiateStream(string binanceAPIKey,string binanceAPISecret,string symbol,string powerBIAPIURL)
{
// Trade aggregations
int TradeCount = 0;
decimal cumulativeQuantity = 0;
// Configure websocket
BinanceSocketClient.SetDefaultOptions(new BinanceSocketClientOptions()
{
ApiCredentials = new ApiCredentials(binanceAPIKey,binanceAPISecret),LogVerbosity = LogVerbosity.None,// Change to Debug if required
LogWriters = new List{ Console.Out },});
var socketClient = new BinanceSocketClient();
Console.WriteLine("Connecting to Binance Websocket @ " + socketClient.BaseAddress + "\n");
// Binance exposes many streams and we can connect to whichever ones we want
// Here we are connecting to Trade updates for a specified pair
var successSingleTicker = socketClient.Spot.SubscribetoTradeUpdates(symbol,data =>
{
// Increment aggregations
TradeCount++;
cumulativeQuantity += data.Quantity;
// Create Trade instance
var Trade = new Trade(symbol,data.TradeTime,TradeCount,cumulativeQuantity,data.Price,data.Quantity);
// Convert to string
var jsonString = JsonConvert.SerializeObject(Trade);
// Write to console
Console.WriteLine(jsonString + "\n");
// Post to Power BI Streaming Dataset
try
{
var postToPowerBi = PowerBIPostAsync(powerBIAPIURL,"[" + jsonString + "]");
}
catch (Exception e)
{
Console.WriteLine(e);
}
});
Console.ReadLine();
}
// Ansyc post to Power BI method
static async Task PowerBIPostAsync(string pbiurl,string TradeEvent)
{
HttpContent content = new StringContent(TradeEvent);
HttpResponseMessage response = await httpClient.PostAsync(pbiurl,content);
response.EnsureSuccessstatusCode();
return response;
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。