如果我有一个网页做这样的事情,
protected void Page_Load(object sender, EventArgs e)
{
List<string> items = new List<string>()
{
"test1",
"test2",
"test3"
};
Response.Write(items);
}
如何在另一端取回列表,例如我在另一端有这样的代码,
static void Main(string[] args)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:50513/Default.aspx");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
}
我该如何真正拉回列表?
由于我必须使用的第三方 API 的限制,我必须使用 asp .net 页面。
最佳答案
要进一步扩展 Joe 的回答,最好的办法是使用 JSON.NET 序列化和反序列化列表。由于 Web 只能来回发送字符串,因此 JSON 非常适合通过 Web 发送对象。您可以像这样序列化列表(使用 JSON.NET):
List<string> items = new List<string>()
{
"test1",
"test2",
"test3"
};
var json = JsonConvert.SerializeObject(items);
Response.Write(json);
这将写入响应:
["test1", "test2", "test3"]
在接收端,使用:
var list = JsonConvert.DeserializeObject<List<string>>(json);
您将取回原始列表。至于图标,如果你不能传递链接而实际上需要传递图标本身,你可以将文件序列化为 Base64 编码的字符串(然后对其进行解码),或者你可以使用 BSON:
http://james.newtonking.com/archive/2009/12/26/json-net-3-5-release-6-binary-json-bson-support.aspx
虽然我自己没有做过,所以我无法提供示例,抱歉。
关于c# - 响应.Write(对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2323229/