反序列化RESTAPI xml响应c#
我的任务是调用RESTAPI,该API提供XML输出。xml输出应该反序列化为.NET类,以后可以查询该类。我不确定我哪里做错了,但代码给出了一个错误。在调试代码时,我发现问题在于,当尝试反序列化响应流时,它会出现一个错误,错误是“responsestream.Length引发了System.NotSupportedException类型的异常”。请帮我解决这个问题。 下面是我的示例代码反序列化RESTAPI xml响应c#,c#,rest,C#,Rest,我的任务是调用RESTAPI,该API提供XML输出。xml输出应该反序列化为.NET类,以后可以查询该类。我不确定我哪里做错了,但代码给出了一个错误。在调试代码时,我发现问题在于,当尝试反序列化响应流时,它会出现一个错误,错误是“responsestream.Length引发了System.NotSupportedException类型的异常”。请帮我解决这个问题。 下面是我的示例代码 WebRequest request = (WebRequest)WebRequest.CreateHttp
WebRequest request = (WebRequest)WebRequest.CreateHttp(apiurl);
request.Method = "GET";
using (WebResponse response = request.GetResponse())
{
Stream responsestream = response.GetResponseStream();
XmlSerializer serializer = new XmlSerializer(typeof(List<ResponseClass>));
var apiresponse = (List<ResponseClass>)serializer.Deserialize(responsestream);
}
WebRequest-request=(WebRequest)WebRequest.CreateHttp(apirl);
request.Method=“GET”;
使用(WebResponse=request.GetResponse())
{
Stream responsestream=response.GetResponseStream();
XmlSerializer serializer=新的XmlSerializer(typeof(List));
var apiresponse=(列表)序列化程序。反序列化(responsestream);
}
您是否尝试过在项目中更新Rest API的服务引用?类型可能已经改变了。我改变了,但它仍然给出了相同的问题。我可能以错误的方式处理响应流,这可能是原因。可能检查引用,不确定它是否重要,但它可能使用IEnumerable而不是List。您必须读取整个响应,然后反序列化它,GetResponseStream
返回的流不支持反序列化程序使用的Length
属性。