如何调用ASHX处理程序并获取结果返回

10

我创建了一个处理程序,它在执行一些数据库工作后返回整数值。我想知道如何调用该处理程序来获取该值并将其分配给标签。

我已经搜索过了,大多数示例都使用Jquery.AJAX调用来检索该值。我确定我也可以使用该方法获取该值。但由于我的公司的某些限制,我只能使用代码后台。

任何示例都可以帮助。

Handler: http://somesite.com/Stores/GetOrderCount.ashx?sCode=VIC
which returns: 3
需要将这个分配给标签控件。
到目前为止,我已经尝试了这么多。
HttpWebRequest request = (HttpWebRequest) WebRequest.Create("http://somesite.com/Stores/GetOrderCount.ashx?sCode=VIC");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Label1.Text = response.ToString() // this does not work

如果您在浏览器中输入该URL,会得到什么回应?格式是什么? - Quannt
如果我在浏览器中输入URL,我会得到值...正是我期望得到的...但我不知道如何在aspx页面中获取它。 - patel.milanb
1
好的,请注意,如果您想使用HttpWebRequest,请小心处理response.Header,您可能需要指定一些头信息以检索数据。 - Quannt
2个回答

16

使用WebClient.DownloadString方法

WebClient client = new WebClient ();
Label1.Text = client.DownloadString ("http://somesite.com/Stores/GetOrderCount.ashx?sCode=VIC");

您还可以使用ajax直接调用您的处理程序并更新标签。

以下是一个jQuery示例:

$.get('Stores/GetOrderCount.ashx?sCode=VIC', function(data) {
  $('.result').html(data);
});

这给了我我想要的... +1 - patel.milanb

5

试试这个

System.IO.Stream stream = response.GetResponseStream();
System.IO.StreamReader reader = new System.IO.StreamReader(stream);
string contents = reader.ReadToEnd();

我认为你的解决方案也可以正常工作,但使用WebClient然后流式传输会更容易。 - patel.milanb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接