【问题标题】:How to convert stream reader response to a class object?如何将流阅读器响应转换为类对象?
【发布时间】:2013-04-28 21:45:12
【问题描述】:

我目前正在开发一些功能,使 httppost 然后得到响应。

这是我目前正在使用的代码:

public string SubmitRequest(string postUrl, string contentType, string postValues)
    {
        var req = WebRequest.Create(postUrl);
        req.Method = "POST";
        req.ContentType = contentType;

        try
        {
            using (var reqStream = req.GetRequestStream())
            {
                var writer = new StreamWriter(reqStream);
                writer.WriteLine(postValues);
            }

            var resp = req.GetResponse();

            using (var respStream = resp.GetResponseStream())
            {
                var reader = new StreamReader(respStream);
                return reader.ReadToEnd().Trim();
            }

        }
        catch(WebException ex)
        {
            // do something here
        }

        return string.Empty;
    }

函数以字符串格式返回xml,例如:

<result>
  <code>Failed</code>
  <message>Duplicate Application</message>
</result>

这需要转换为类对象 - 但我不确定如何以正确的方式进行。

任何建议表示赞赏。

【问题讨论】:

标签: c# asp.net http-post streamreader


【解决方案1】:

您想将返回的 xml 反序列化为一个对象。这是一个基本示例:

//m is the string based xml representation of your object. Make sure there's something there
if (!string.IsNullOrWhiteSpace(m))
    {
        //Make a new XMLSerializer for the type of object being created
        var ser = new XmlSerializer(typeof(yourtype));

        //Deserialize and cast to your type of object
        var obj = (yourtype)ser.Deserialize(new StringReader(m));

        return obj ;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2019-03-15
    相关资源
    最近更新 更多