[OpenLayers-Users] C# version of Proxy for OpenLayers: Proxy.ashx?url=

Paul james pauljame at gmail.com
Wed Apr 8 10:20:24 EDT 2009


Hello!
I tried that, but if I test any page like that :
Proxy.ashx?url=http://www.google.com
I got a empty blank page...

Any idea?
*P*

---------------------------------

<%@ WebHandler Language="C#" Class="Proxy" %>

using System;
using System.Web;
using System.Net;
using System.IO;
using System.Text;
using System.Configuration;


public class Proxy : IHttpHandler {

    public void ProcessRequest (HttpContext context) {

        HttpWebRequest request =
(HttpWebRequest)WebRequest.Create(context.Request["url"]);
        request.UserAgent = context.Request.UserAgent;
        request.ContentType = context.Request.ContentType;
        request.Method = context.Request.HttpMethod;

        byte[] trans = new byte[1024];
        int offset = 0;
        int offcnt = 0;

        if (request.Method.ToUpper() == "POST")
        {
            Stream nstream = request.GetRequestStream();
            while (offset < context.Request.ContentLength)
            {
                offcnt = context.Request.InputStream.Read(trans, offset,
1024);
                if (offcnt > 0)
                {
                    nstream.Write(trans, 0, offcnt);
                    offset += offcnt;
                }
            }
            nstream.Close();
        }

        using (HttpWebResponse response =
(HttpWebResponse)request.GetResponse())
        {
            context.Response.ContentType = response.ContentType;

            using (Stream receiveStream = response.GetResponseStream())
            {
                offset = 0;
                offcnt = receiveStream.Read(trans, offset, 1024);
                while (offcnt>0)
                {
                    context.Response.OutputStream.Write(trans, 0, offcnt);
                    offset += offcnt;
                    if (offcnt >= 0)
                    {
                        try
                        {
                            offcnt = receiveStream.Read(trans, offset,
1024);
                        }
                        catch (Exception)
                        {
                            break;
                        }
                    }
                    else
                        break;
                }
            }
            context.Response.OutputStream.Close();
            context.Response.Flush();
            response.Close();
        }
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20090408/baa25662/attachment.html


More information about the Users mailing list