相关疑难解决方法(0)

解释并删除 docker exec 响应开始时无用的字节

我正在运行 docker api 函数:

func (cli *Client) ContainerExecAttach(ctx context.Context, execID string, config types.ExecConfig) (types.HijackedResponse, error)

当我使用内置的 bufio 阅读器阅读响应时:

line, _, err := resp.Reader.ReadLine()
Run Code Online (Sandbox Code Playgroud)

我没有收到错误,但如果我尝试将字节转换为字符串,应用程序就会崩溃 - 有问题的应用程序是一个 Windows 服务,我认为正因为如此,我正在努力从中找出错误。

我现在已经设法使用(日志到事件查看器)查看输出:

logger.Infof("res: %q", line)
Run Code Online (Sandbox Code Playgroud)

其输出是:

res: "\x01\x00\x00\x00\x00\x00\x00X{\"更新\":false,\"扫描\":false,\"进度\":0,\"发现\":false, \“已注册\”:假}”

现在,我期待着 json,但时髦的前缀是最不受欢迎的,知道这些字节是什么以及它们为什么在那里吗?我希望这能为我的下一个问题提供信息;删除它们或首先不接收它们的最干净的方法是什么?

我目前正在将字节修剪固定长度,但我认为我需要做一些更复杂的事情。我正在考虑保留这些字节:\x01 \x00但不确定我是否应该期待其他字节

go

1
推荐指数
1
解决办法
563
查看次数

标签 统计

go ×1