将ArrayList从服务器发送到客户端应用程序

时间:2013-04-15 14:20:32

标签: c# database http client

我在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。我很好地检查了这个方法,它的工作原理很完美。

我有一个发送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

1 个答案:

答案 0 :(得分:1)

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

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

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

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