Я вынужден работать с дрянным сторонним API, где нет согласованности с типом возврата. Поэтому я отправляю программный веб-запрос, перехватываю поток обратно, и базовый контент может быть сообщением об ошибке (что еще хуже, поскольку это может быть либо необработанный текст, либо XML, который они возвращают), либо он возвращает двоичный файл. У меня нет возможности узнать, какой формат ожидать при любом запросе, поэтому мне нужен способ проанализировать это во время выполнения.
Как мне решить эту проблему? Поток недоступен для поиска, поэтому я ничего не могу сделать, кроме как прочитать его. Я обычно стараюсь не использовать обработку исключений для управления потоком, но кажется, что это может быть лучшим способом справиться с этим. Всегда относитесь к нему так, как будто это должен быть ожидаемый двоичный тип файла, и, если что-то взорвется, перехватите исключение и попытайтесь извлечь то, что должно быть сообщением об ошибке