0

我在 C# 中有以下服务器应用程序

public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string function = context.Request.QueryString["function"];

            Methods m = new Methods();

            if (function.Equals("GetAllCreditCards"))
            {
                ArrayList text = m.GetAllCreditCards();
                context.Response.Write(text);
            }
        }

基本上,当调用 GetAllCreditCards 方法时,它会使用数据库中的数据填充数组列表。我检查了这个方法,效果很好。

我有一个将 ArrayList 文本发送到的客户端应用程序:

public String returnResponse(HttpWebResponse response)
        {
            StreamReader stream = new StreamReader(response.GetResponseStream());
            String answer = stream.ReadToEnd();
            return answer;
        }

            if (TextBox_Function.Text.Equals("GetAllCreditCards"))
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:4000/Handler.ashx?function=" + TextBox_Function.Text);
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                String answer = returnResponse(response);
                Session["answer"] = answer;
                Response.Redirect("Results.aspx");
            }

现在,如何修改客户端代码以便从 HttpWebResponse 中提取 ArrayList?我目前处于学习阶段,所以请多多包涵。谢谢你。

答案字符串的内容目前是:

System.Collections.ArrayList
4

1 回答 1

1

您应该以某种方式序列化您的返回值。例如,

context.Response.Write(new new JavaScriptSerializer().Serialize(text));

您还可以使用其他序列化器,例如:XmlSerializer、DataContractSerializer 等。

但正如我在你之前的问题中评论的那样。有更好的方法来编写 RESTful 服务(WCF、WebService MVC 等)。你不需要重新发明轮子。

于 2013-04-15T14:23:51.207 回答