gpt4 book ai didi

java - 如何使用 Quickfixj 删除 BodyLength 字段(标签 9)或 CheckSum(标签 10)

转载 作者:行者123 更新时间:2023-12-04 04:53:22 26 4
gpt4 key购买 nike

我是 quickfix 和 java 的初学者。

通常,当我想删除 quickfix 消息中的字段时,我使用带有标签的 removeField 方法作为参数,但这似乎不适用于 2 个自动生成的字段 - BodyLength(标签 9)和 CheckSum(标签 10) )。

例如,我创建了一条消息,然后打印。

System.out.println(message)



8=FIX.4.29=8635=149=WFSComp23452=20130613-21:45:22.28256=ClientComp1234109=default112=default10=067

然后我删除一个字段,比如标签号 8,
与以下
message.getHeader().removeField(8);

并再次打印,我得到

9=7435=149=WFSComp23452=20130613-22:06:32.81956=ClientComp1234112=default10=105

删除字段的位置,但是当我尝试以相同的方式删除 9 标签时:
message.getHeader().removeField(9);

我打印时的输出产生相同的代码,但没有删除该字段:

9=7435=149=WFSComp23452=20130613-22:06:32.81956=ClientComp1234112=default10=105

9场还在!

我的猜测是因为 quickfix 会自动生成 bodylength,但是如何删除它呢?谢谢。

快速修复链接:

文档:
http://www.quickfixj.org/quickfixj/javadoc/1.5.3/

http://www.quickfixj.org/

最佳答案

是的,QuickFIX 会自动生成 BodyLength 和校验和。

我无法想象为什么你认为你需要删除这些字段,但如果你真的想要删除这些字段的消息字符串,你可以在事后应用正则表达式来混合它:

message.toString().replaceAll("\09=[0-9]*","").replaceAll("\010=[0-9]*","")

不过,我真的没有看到这样做的任何充分理由。

关于java - 如何使用 Quickfixj 删除 BodyLength 字段(标签 9)或 CheckSum(标签 10),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17098126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com