【发布时间】:2010-11-09 07:51:31
【问题描述】:
如何将数据发送到 asp.net ashx 处理程序?例如,如果我想向 asp.net 处理程序发送一些 xml,这怎么可能?
【问题讨论】:
标签: asp.net xml web-services
如何将数据发送到 asp.net ashx 处理程序?例如,如果我想向 asp.net 处理程序发送一些 xml,这怎么可能?
【问题讨论】:
标签: asp.net xml web-services
与其使用 HttpHandler,不如使用 Web 服务或 WCF 服务。但是,如果您愿意,可以将某些内容发布到处理程序并像这样捕获它:
public void ProcessRequest (HttpContext context) {
var xml = context.Request.Form["data"];
}
用于 POST 数据。对于 GET 数据,您可以使用:
public void ProcessRequest (HttpContext context) {
var xml = context.Request.QueryString["data"];
}
或者简单地说:
public void ProcessRequest (HttpContext context) {
var xml = context.Request["data"];
}
它将在内部循环获取数据的可能方式。
【讨论】:
AFAIK,处理程序处理 HTTP 请求,因此它们可以访问 HttpContext。因此,您调用像 'myhandler.ashx?parameter=value' 这样的处理程序,然后使用 HttpContext.Request.QueryString (context.Request.QueryString["parameter"]) 来查找值。
同样,您可以 POST 数据到处理程序,将您的 XML 添加为 POST 变量,然后使用 context.Request.Form["myXmlData"]
您可以从任何 html 页面调用处理程序:
<body>
<form method="POST" action="MyHandler.ashx">
Paste your XML in this textarea:
<textarea name="MyXmlData" id="MyXmlData" cols="80" rows="10"></textarea><br />
<button type="submit" value="Call Handler"></button>
</form>
</body>
【讨论】: