XmlException: Отсутствует корневой элемент
Обработаю запросы через postXMLData(string xml), где хочу и показать ответ от запроса на консоль и десериалезовать запрос внутри этого метода. Пытаюсь:
Stream responseStream = response.GetResponseStream();
string responseStr = new StreamReader(responseStream).ReadToEnd();
Console.WriteLine(responseStr);
var xmlSerializer = new XmlSerializer(typeof(T));
var t = (T)xmlSerializer.Deserialize(responseStream);
return t;
И тут на 5 линии ошибка:
System.InvalidOperationException: "В документе XML (0, 0) присутствует ошибка. "XmlException: Отсутствует корневой элемент."
Где я делаю неправильно? Я строго хочу и показать и deserialize на одном методе.
Полный код метода:
public static T postXMLData<T>(string xml)
{
Console.WriteLine(xml);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Requests.url);
byte[] bytes;
bytes = System.Text.Encoding.ASCII.GetBytes(xml);
request.ContentType = "text/xml; encoding='utf-8'";
request.ContentLength = bytes.Length;
request.Method = "POST";
Stream requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();
HttpWebResponse response;
response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream responseStream = response.GetResponseStream();
string responseStr = new
StreamReader(responseStream).ReadToEnd();
Console.WriteLine(responseStr);
var xmlSerializer = new XmlSerializer(typeof(T));
var t = (T)xmlSerializer.Deserialize(responseStream); // error here
return t;
}
throw new Exception("что то не так");
}
Источник: Stack Overflow на русском