开发者

Httphandler returing an array

开发者 https://www.devze.com 2023-01-27 05:17 出处:网络
Can a httphandler in .net return a value? If yes how? Thanks, Subrat开发者_开发百科The IHttpHandler interface only implements two things:

Can a httphandler in .net return a value? If yes how?

Thanks,

Subrat开发者_开发百科


The IHttpHandler interface only implements two things:

Boolean IsReusable {get;}

void ProcessRequest(HttpContext context);

So no... in the strictest sense it is not meant to return a value. Now, you can shape your response to look however you want it to (SOAP/XML/JSON). So in effect, you can return anything your heart desires so long as HTTP can support it, and the client consuming it knows how to deal with it.

However, it is ill-advised to go about trying to implement your own services via an HttpHandler as there are simpler and more efficient ways to accomplish the same thing.


The HttpHandler responses by its ProcessRequest(HttpContext context) method, in which you can modify the parameter context to tell what do you want to send back as an response. context.Response.ContentType specifies the MIME type of the response,for example the reponse is text/html so the browser will render it to an html page.Or the reponse is video/mp4 the browser will try to open it and in most circumstances the browser will show a download dialog. Unfortunately there is no text/array in the MIME type(and i think there won't be in the future). But you can pass your array value as plain text with special formats and deserialize it at client side. Here is a simple example:

public void ProcessRequest(HttpContext context)
{
    context.Response.ContentType = "text/plain";
    context.Response.Write("[1,2,3,4]");
}

and at client side in javascript:

var response = GetTheResponse(); //maybe via ajax or something equivalent.
var myArray = eval(response);    //myArray[0]=1,myArray[1]=2...

In a real project, you may want to get an array with complex objects in it(not just simple numbers). So you need systematized serialization/deserialization standards, for example, you serialize your array of Person object into json strings and write it to the reponse, and you deserialize them back at client side using some json utils.

0

精彩评论

暂无评论...
验证码 换一张
取 消