我在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
答案 0 :(得分:1)
您应该以某种方式序列化您的返回值。例如,
context.Response.Write(new new JavaScriptSerializer().Serialize(text));
您还可以使用其他序列化程序,例如:XmlSerializer,DataContractSerializer等。
但正如我在上一个问题中所评论的那样。有更好的方法来编写RESTful服务(WCF,WebService MVC等)。你不需要重新发明轮子。