You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET使用ExchangeSharp遍历Poloniex挂单遇Invalid command错误求助

解决ExchangeSharp Poloniex接口获取挂单时的"Invalid command"错误

看起来你踩了延迟加载的坑,而且刚好和Poloniex API的调用时机撞在一起了——我来给你拆解问题和解决办法:

问题根源

你调用api.GetOpenOrderDetails()的时候,并没有真正发起Poloniex的API请求!因为IEnumerable(Of T)是延迟执行的,这个方法只是返回了一个"查询计划",只有当你尝试访问集合元素(比如调用Count、GetEnumerator().MoveNext())时,才会实际发送API请求。这时候Poloniex返回了"Invalid command"错误,导致代码崩溃。

快速解决办法

先把延迟加载的结果转为立即执行的集合(比如List(Of T)),这样API请求会在转换时就触发,错误也会更早暴露,方便排查:

Try
    ' 用ToList()强制立即执行API请求并加载所有结果
    Dim openOrders As List(Of ExchangeOrderResult) = api.GetOpenOrderDetails().ToList()
    
    ' 现在可以安全操作集合了
    Console.WriteLine($"当前挂单数量: {openOrders.Count}")
    
    For Each order In openOrders
        Console.WriteLine($"订单ID: {order.OrderId}, 交易对: {order.MarketSymbol}")
    Next
Catch ex As ExchangeSharp.APIException
    Console.WriteLine($"API调用出错: {ex.Message}")
    Console.WriteLine($"错误堆栈: {ex.StackTrace}")
End Try

进一步排查方向

如果转成List还是报错,就要从Poloniex API本身或者库的配置找问题:

  • 检查API权限:确认你的Poloniex API密钥已经开启了"读取挂单"的权限,密钥和密码(Passphrase)没有填错,也没有过期。
  • 验证API命令:Poloniex的私有API中,获取挂单的命令是returnOpenOrders,你可以用Postman/curl直接调用这个接口,确认自己的密钥能正常返回结果,排除API本身的问题。
  • 更新ExchangeSharp版本:旧版本的库可能对Poloniex的API命令处理有bug,尝试更新到最新版的ExchangeSharp,看看问题是否消失。

内容的提问来源于stack exchange,提问作者Touchy Clan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:38:59