XmlException: Отсутствует корневой элемент

Рейтинг: 1Ответов: 0Опубликовано: 14.02.2023

Обработаю запросы через 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("что то не так");
}

Ответы

Ответов пока нет.