2

我想从 QuickFIX/J 中获取原始消息数据。这不是 Message 对象的字符串表示,而是实际的 FIX 消息数据。由于提供给 QuickFIX/J 的消息字典,它们可能会有很大的不同。

现在查看我们拥有的 Message 类型

private String messageData;

但是,这是私有的,不可访问。另一方面, toString() 方法看起来像:

public String toString() {
    this.header.setField(new BodyLength(this.bodyLength()));
    this.trailer.setField(new CheckSum(this.checkSum()));
    StringBuffer sb = new StringBuffer();
    this.header.calculateString(sb, (int[])null, (int[])null);
    this.calculateString(sb, (int[])null, (int[])null);
    this.trailer.calculateString(sb, (int[])null, (int[])null);
    return sb.toString();
}

话虽这么说,有没有办法从消息中获取原始数据?我似乎找不到方法。

4

2 回答 2

1

不确定您在尝试时是否可以在 QuickFIX/J 版本中使用它,但我可以看到它在 2.1.0 版本中可用。

在 Message.java 中:

public String toRawString() {
    return messageData;
}

虽然,在对 Message 对象进行任何修改后,此方法不会计算正文长度和校验和。为此,您必须使用 toString() 方法。

于 2020-05-28T19:36:29.770 回答
0

您必须破解引擎才能为messageData.

于 2015-10-01T18:03:24.897 回答