Хм ... Сомневаюсь, что она возвращает строку с нулевым символом в конце, поскольку в C # такого понятия просто нет.В лучшем случае у вас может быть строка с символом \0u0000
в конце, но в этом случае это будет означать, что возврат с сервера содержит такой символ, а HttpWebRequest просто выполняет свои обязанности и возвращает все, что вернул сервер.
Обновление
после прочтения вашего кода, ошибка довольно очевидна: вы Read()
обращаетесь из потока в байт []но не обращая внимания на , сколько вы на самом деле прочитали :
int responseLength = httpResponse.GetResponseStream().Read(
serverBuffer, 0, BUFFER_SIZE);
output = processResponse(System.Text.UTF8Encoding.UTF8.GetString(
serverBuffer, 0, responseLength));
, это решило бы непосредственную проблему, оставив только другие ошибки в вашем коде, с которыми нужно иметь дело, например тот факт, чтоне может правильно обработать ответ, больший чем BUFFER_SIZE
... Я бы предложил вам открыть читатель XML-документа в возвращаемом потоке вместо манипулирования потоком с помощью (ненужной) операции копирования byte []:
Parser.Load(httpResponse.GetResponseStream());