我想将流数据从响应流转换为自定义对象.
我想将respose流转换为自定义对象,我正在执行这些步骤.
我的代码如下.
myMethod()
{
state s = new state();
Stream receiveStream;
StreamReader readStream;
HttpWebRequest request;
HttpWebResponse response;
try
{
request = (HttpWebRequest)WebRequest.Create (url);
request.Method = "GET";
request.ContentType = "application/json";
response = (HttpWebResponse)request.GetResponse ();
receiveStream = response.GetResponseStream();
readStream = new StreamReader(receiveStream);
Console.WriteLine (readStream.ReadToEnd());
serializer = new DataContractJsonSerializer(typeof(state));
s = serializer.ReadObject(readStream.BaseStream)as state;
Console.Write(s.name+"\n");
response.Close ();
readStream.Close ();
}
catch (Exception ex)
{
}
}
Run Code Online (Sandbox Code Playgroud)
对象š返回什么.谁能帮我?
麻烦的是,当您事先已经从中读取了所有数据时,您正在尝试反序列化对象:
readStream = new StreamReader(receiveStream);
Console.WriteLine (readStream.ReadToEnd());
Run Code Online (Sandbox Code Playgroud)
在这些行之后,流将为空,因此没有任何反序列化.摆脱那些线(然后receiveStream在下面使用),你可能会发现它只是有效.
另外,一些建议:
using语句而不是显式关闭流using正如实现的那样,为响应本身添加一个语句IDisposableException它并不是一个好主意,以你正在做的方式吞下异常几乎绝不是一个好主意,没有记录等state会State(也可能使名称更具描述性的一点无论如何)as-见的话题我的博客文章的原因| 归档时间: |
|
| 查看次数: |
2828 次 |
| 最近记录: |