正在从StreamReader确定内容

本文关键字:StreamReader | 更新日期: 2023-09-27 18:22:42

我被迫使用一个糟糕的第三方API,因为它与返回类型不一致。因此,我提交了一个程序化的web请求,取回Stream,底层内容可能是一条错误消息(更糟糕的是,它可能是原始文本,也可能是他们返回的xml),或者它返回一个二进制文件。我不知道任何给定请求的格式,所以我需要一种在运行时内省的方法。

我应该如何着手解决这个问题?流是不可查找的,所以我只能读取它。我通常尽量不使用异常处理进行流控制,但这似乎是处理它的最佳方式。始终将其视为预期的二进制文件类型,如果出现任何问题,则捕获异常并尝试提取错误消息

正在从StreamReader确定内容

想到的一件事是检查流中的第一个x字节数。如果第一位是格式良好的xml,那么它很可能是xml。问题是试图确定原始文本和二进制文本之间的区别。