从StreamReader确定内容?

时间:2012-02-03 18:59:42

标签: c# stream io .net

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

我应该怎样解决这个问题?该流是不可搜索的,所以除了阅读之外我什么也做不了。我通常尽量不使用异常处理进行流控制,但似乎这可能是处理它的最佳方法。总是把它视为应该是预期的二进制文件类型,如果有什么东西爆炸然后捕获异常并尝试提取应该是错误消息

1 个答案:

答案 0 :(得分:0)

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