gpt4 book ai didi

c# - HttpContent.ReadAsAsync 反序列化问题

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:21 26 4
gpt4 key购买 nike

我有一个通过 HttpSelfHostServer (ASP.Net WebApi Beta) 运行的小型 REST 服务,但在反序列化一些发布到服务器的数据时遇到了一些问题。方法签名如下:

public HttpResponseMessage PostServers(ServerType serverType)

该方法被调用正常,但是在使用以下代码反序列化数据时:

var servers = Request.Content.ReadAsAsync<List<ServerZoneInformation>>().Result;
...

抛出 IOException 并显示消息“无法访问已关闭的流。”。尝试通过

反序列化代码时发生相同的错误
XmlSerializer serializer = new XmlSerializer(typeof(List<ServerZoneInformation>));
var servers = (List<ServerZoneInformation>)serializer.Deserialize(Request.Content.ReadAsStreamAsync().Result);
...

但是,如果我使用以下方法,我可以获得该方法:

XmlSerializer serializer = new XmlSerializer(typeof(List<ServerZoneInformation>));
string data = Request.Content.ReadAsStringAsync().Result;
using (MemoryStream ms = new MemoryStream(UTF8Encoding.UTF8.GetBytes(data)))
{
var servers = (List<ServerZoneInformation>)serializer.Deserialize(ms);
...
}

我是不是在前两种情况下做错了什么,或者这是 WebApi 中的错误?

注意:我还没有在通过 IIS 托管时尝试过这个。

干杯

最佳答案

在与 ASP.Net 网站上的 MS 人员交谈后,它是当前 WebApi 测试版中的一个错误,更多信息 here .此问题应在下一版本的 WebApi 中得到修复。

关于c# - HttpContent.ReadAsAsync 反序列化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9968870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com